class LoopInfoBase<BasicBlock, Loop> 的迭代器?

Iterator to class LoopInfoBase<BasicBlock, Loop>?

我阅读了 LoopInfoBase(BlockT, LoopT) 上的 llvm 页面,了解到它包含所有顶级循环的信息。它还具有在 class 模板中定义的迭代器(和反向迭代器等)。

不太明白迭代器迭代的是什么?例如,在 vector<int> 中,迭代器 i 将迭代容器向量,而 *i 是一个 int,在 Map<string, int> 中,迭代器 i 将迭代map 和 *i 将是一对类型 <string, int>。但是这里有一个 class 模板,所以假设 i 是这样一个 class 的迭代器,那么 *i 代表什么(或者它的类型是什么)?

对于你提到的文件,迭代器的类型是

typedef std::vector<LoopT *>::const_iterator llvm::LoopInfoBase< BlockT, LoopT >::iterator

所以我们看到它是 LoopT 指针向量的 const_iterator(const 值的迭代器)。

我有点好奇您为什么要深入研究 LLVM 文档。如果你正在尝试学习 C++,我不建议尝试通过 LLVM 编译器文档来学习,这似乎是一种过于困难的学习语言的方法。试试像 http://www.cplusplus.com/doc/

这样的教程