那么,是否可以像使用指针一样使用迭代器访问二维向量中的所有元素呢?
So is that possible to using iterator access all element in 2 dimensional vector just like pointer?
看下面的代码(我知道这是不对的):
std::vector<std::vector<int>> ivec(2, std::vector<int>(9));
for (auto it = ivec.begin(); it != ivec.end(); it++)
{
for (auto itr = it.begin(); itr != it.end(); itr++)
{
std::cout << *itr << std::endl;
}
}
我建立了一个二维向量ivec。现在我想用迭代器而不是下标来访问每个元素。我知道pointer是一个特殊的迭代器。那么有可能使用迭代器访问二维向量中的所有元素就像指针一样吗?
你问:
所以有可能使用迭代器访问所有元素在二维向量就像指针吗?
是的,它是。
这个想法是合理的。你的代码中有语法错误。
std::vector<std::vector<int>> ivec(2, std::vector<int>(9));
for (auto it = ivec.begin(); it != ivec.end(); it++)
{
// for (auto itr = it.begin(); itr != it.end(); itr++)
for (auto itr = it->begin(); itr != it->end(); itr++)
{
std::cout << *itr << std::endl;
}
}
您可以使用range- for
循环进一步简化。
std::vector<std::vector<int>> ivec(2, std::vector<int>(9));
for (auto& it : ivec)
{
for (auto itr : it)
{
std::cout << itr << std::endl;
}
}
相关文章:
- 我在二维向量中是否正确分配了内存
- 在二维向量或数组中可以存储的最大元素数是多少?
- 如何将整数字符串转换为整数的二维向量?
- 使用 C++98 标准填充二维静态向量
- C++中复向量与实向量的二维卷积
- 如何使用擦除和迭代器来删除二维向量中的项目
- 如何在二维向量c++中迭代col
- 如何在C++中将.csv文件的元素存储到二维向量中?
- std::vector::clear()ing 二维向量线程的内部向量安全吗?
- 在我为我的二维向量提供第一个值后控制台关闭
- 以C++输出二维向量
- 在 c++ 中赋值给二维向量
- 在二维向量的每一列中查找最大值
- 如何声明二维模板化类类型向量?
- 类对象初始化的二维向量
- 如何定义二维矢量哪个元素是可变大小的向量
- 有没有办法像python:np.concatenate([x,y,z],axis=1)中那样沿着列连接三个二维向量C++
- 我如何在二维向量中存储一些数组
- 我可以push_back矩形形状到继承矩形形状的类的二维向量中吗?
- 二维向量的迭代器