gpt4 book ai didi

c++ - 迭代一维数组集合

转载 作者:行者123 更新时间:2023-11-28 02:27:37 25 4
gpt4 key购买 nike

我表示数组的集合如下:

std::vector<int> v = {3, 0, 1, 2, 1, 3, 1, 4, 2, 5, 6 };

这个数组代表了 4 个数组的集合,它们是 {0,1,2}, {3}, {4},和 {5,6}。所以 v 首先包含数组的大小,然后是数组内容。

我正在尝试遍历数组,即遍历每个数组的每个元素并以某种方式处理它们。如果这是一个 vector 的 vector ,可以简单地做:

std::vector<std::vector<int> > v;
v.emplace_back(std::vector<int>({ 0, 1, 2 }));
v.emplace_back(std::vector<int>({ 3 }));
v.emplace_back(std::vector<int>({ 4 }));
v.emplace_back(std::vector<int>({ 5, 6 }));

for (std::size_t i = 0; i < v.size(); ++i)
{
for (std::size_t j = 0; j < v[i].size(); ++j)
{
std::cout << v[i][j] << " ";
}
std::cout << "\n";
}

但是我如何使用第一个描述的方案实现相同的效果呢?我觉得我想太多了,我只能想出一些太复杂的东西。有一些巧妙的解决方案吗?

最佳答案

解决方案似乎并不比 2D vector 复杂多少:

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;
}

我们只是让遍历 vector 。变量 n 告诉我们每行需要打印多少个元素。

关于c++ - 迭代一维数组集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30007841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com