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/
这样的教程
我阅读了 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/
这样的教程