C++ 迭代一维数组集合
我代表一组数组,如下所示:C++ 迭代一维数组集合,c++,arrays,C++,Arrays,我代表一组数组,如下所示: std::vector<int> v = {3, 0, 1, 2, 1, 3, 1, 4, 2, 5, 6 }; 但是,我如何用前面描述的方案实现同样的效果呢?我觉得我想得太多了,我只能想出一些太复杂的东西。有什么好的解决方案吗?假设已经构建了向量,请尝试迭代器 std::vector<int>::iterator i = v.begin(); while(i != v.end()){ size_t n = *i; for(s
std::vector<int> v = {3, 0, 1, 2, 1, 3, 1, 4, 2, 5, 6 };
但是,我如何用前面描述的方案实现同样的效果呢?我觉得我想得太多了,我只能想出一些太复杂的东西。有什么好的解决方案吗?假设已经构建了向量,请尝试迭代器
std::vector<int>::iterator i = v.begin();
while(i != v.end()){
size_t n = *i;
for(size_t j = 0; j < n; j++)
std::cout << *(++i) << " ";
std::cout << std::endl;
++i;
}
std::vector::iterator i=v.begin();
而(i!=v.end()){
大小n=*i;
对于(尺寸j=0;j std::cout解决方案似乎并不比2D向量复杂多少:
std::vector<int>::iterator it = std::begin(v);
while (it != std::end(v)) {
int n = *it;
for (int j = 0; j < n; ++j) {
++it;
std::cout << *it << ' ';
}
std::cout << '\n';
++it;
}
std::vector::iterator it=std::begin(v);
while(it!=std::end(v)){
int n=*it;
对于(int j=0;jstd::vector<int>::iterator it = std::begin(v);
while (it != std::end(v)) {
int n = *it;
for (int j = 0; j < n; ++j) {
++it;
std::cout << *it << ' ';
}
std::cout << '\n';
++it;
}