📅  最后修改于: 2023-12-03 15:10:01.762000             🧑  作者: Mango
在c++中,我们可以使用一些STL容器来存储和处理向量,其中vector
是其中最常用的一个。在某些情况下,我们可能需要打印一个向量的向量,也就是一个二维数组。本文将介绍如何使用vector
打印一个向量的向量。
最简单的方法是使用双层循环。我们可以使用两个嵌套的for
循环来遍历二维向量,并使用cout
打印每个元素。
#include <iostream>
#include <vector>
int main()
{
std::vector<std::vector<int>> vec{{1, 2}, {3, 4}, {5, 6}};
for (const auto& inner : vec)
{
for (const auto& num : inner)
{
std::cout << num << " ";
}
std::cout << std::endl;
}
return 0;
}
注意:在外部循环中,我们使用了const auto&
来遍历每个二维向量。这是因为我们不希望修改它们。在内部循环中,我们同样使用了const auto&
,因为我们不会修改每个二维向量中的元素。
此代码片段将输出以下内容:
1 2
3 4
5 6
如果你不喜欢使用双层循环,还可以使用算法库中的函数来打印二维向量。我们可以使用std::for_each()
和std::ostream_iterator
来实现。
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
int main()
{
std::vector<std::vector<int>> vec{{1, 2}, {3, 4}, {5, 6}};
for_each(vec.begin(), vec.end(), [](auto& inner) {
std::copy(inner.begin(), inner.end(), std::ostream_iterator<int>(std::cout, " "));
std::cout << std::endl;
});
return 0;
}
此代码片段将输出以下内容:
1 2
3 4
5 6
使用以上方法,你可以方便地打印出一个向量的向量。双层循环是最简单和直接的方法,而使用算法库则可以更加优雅地实现。无论你选择哪一种方法,都应该使用C++11中的范围for
循环和lambda表达式,以此提高代码的可读性和编程效率。