如何使用 vector.begin() 将向量的向量打印到 vector.end()
how to print vector of vectors using vector.begin() to vector.end()
取一个 int 的向量,我如何从头到尾打印所有这些
for(row=v.begin();row!=v.end();row++){
for(col=row->begin();col!=row->end();col++){
//cout<<?
}
}
内部 for 循环中应该使用什么来打印每个元素
就个人而言,我喜欢只使用从 0
到 size()
的简单 for 循环来迭代向量,但这就是使用迭代器的方式:
for(vector< vector<int> >::iterator row = v.begin(); row != v.end(); ++row) {
for(vector<int>::iterator col = row->begin(); col != row->end(); ++col) {
cout << *col;
}
}
请参阅:迭代 std::vector:无符号与有符号索引变量
v.begin()
将迭代器返回到序列
的开头 v.end()
将迭代器返回到序列末尾之后的元素
您可以使用这些迭代器遍历结构:
for(auto it_row =v.begin(); it_row!=v.end(); it_row++){
for(auto it_col=it_row->begin();it_col!=it_row->end();it_col++){
cout<<*it_col<<endl;
}
}
为了尊重(获取值)迭代器,您需要使用以下语法: *it_col
我使用了auto
(C++ 11)而不是显式放置迭代器类型:
vector<vector<int>>::const_iterator it_row = v.begin()
vector<int>::const_iterator it_col = it_row->begin()
您可以在此处找到有关迭代器的更多详细信息。
如果您使用的是 c++11,则可以使用基于范围的 for 循环;
for (const auto & items : v)
for (const auto & item : items)
cout << item;
相关文章:
- 使用 std::vector::reverse_iterator 将 int 序列化为字节向量?
- 如何创建一个类,以便向量工作 std::vector<MyClass<int>> v{ 1,2,3 };
- 将向量之间的数字放在另一个向量之间<vector>>如果两个数字的差值为 1
- 对的排序向量 (std::vector<pair<int, int>>) 按对的第一个元素搜索并更新第二个元素值
- 为什么通过 vector<reference_wrapper> 的元素删除引用的值<T>不会使向量无效?
- 我可以使用 std::vector::swap 来修改共享向量吗?
- 如何在C++中将字节向量(std::vector<uint8_t>)转换为不同的uint32_t,uint16_t和uint8_t变量
- 为什么我的向量::擦除调用会抛出"vector subscript out of range"?
- C++ 向量加减抛出"expression: vector subscript out of range."错误
- 'Vector.erase()' 不适用于类向量
- 使用 std::vector::swap 方法在C++中交换两个不同的向量是否安全?
- 向量索引变量声明(size_t 或 std::vector<DATATYPE>::size_type)
- 如何知道向量的实际最大大小?(不使用 std::vector::max_size)
- C++ 通过 std::transform 的 vector 索引获取向量
- std::vector::clear()ing 二维向量线程的内部向量安全吗?
- 如何在一对集合的向量中插入元素?vector<pair<int,set<string>>>
- 如何将 std::vector 的某些元素移动到向量中的新索引?
- 代码将向量存储为向量<vector>,为什么没有错误消息?
- 使用向量<vector>在 C++ 中表示图形
- 在展开过程中将向量成员推入向量:vector.push_back(向量[0])