使用 auto 遍历指针的常量向量
Iterate through a const vector of pointers with auto
假设我有以下常量向量指针:
const std::vector<Component*> components;
我想遍历它,只在这个向量的一个元素上调用一个方法。这样做是否正确:
for (const auto& item : components) {
method(item);
}
与使用有什么区别:
for (auto item : components) {
method(item);
}
跟:
void method(Components* component);
这样做是否正确
这取决于你。
对于第一种情况,item
的类型将Component* const&
,它是绑定到vector
元素的引用。
对于第二种情况,item
的类型将是Component*
,它(即指针本身(是从vector
的元素复制的。
method
的参数类型是 Component*
,表示通过值/复制传递指针,那么这两种情况之间没有实际区别。对于指针(作为内置类型(,这里只需auto item : components
就可以了。
相关文章:
- 初始化指针的常量向量
- 将编译时常量向量转换为堆分配版本
- 在<uint8_t> <char> c++ 中将常量向量转换为常量向量
- 对常量向量进行常量unique_ptr
- 常量向量中的非常量
- 如何将智能指针向量转换为常量向量,该常量向量包含指向常量的智能指针
- 使用 auto 遍历指针的常量向量
- 如何将常量向量转换为非常量
- C++:访问由另一种方法返回的向量的常量向量时出现分段错误
- 在编译时使用模板初始化指向数组的指针的常量向量
- 上调常量向量
- 错误推回对常量向量元素的引用
- 如何初始化静态常量向量
- 是否可以迭代"常量向量<int>"?
- 如何初始化类C++的成员常量向量
- 如何在 C++11 中的函数内初始化线程安全静态常量向量
- 我们可以使用 const_cast 将常量向量转换为<string>向量<string>吗?
- 在 VC++ 2010 中传入常量向量
- 在 Visual Studio 2012 中初始化矢量的静态常量向量
- 常量向量暗示常量元素