我如何访问和打印向量的向量中的单个元素
How do I access and print individual elements of a vector of vectors?
我尝试构建一个7*3矩阵,然后打印它的元素,因为它的值被初始化,但不幸的是,程序在运行时终止。如果有更简单、更有效的方法来完成同样的过程,请务必告诉我。
vector< vector<int> > v1;
for(int i = 0;i < 7;i++)
{
for(int j = 0;j < 3;j++)
{
v1[i].push_back(i + j);
cout << v1[i][j] << " ";
}
cout << "n";
}
您忘记初始化v1
您可以使用以下命令:
std::vector<std::vector<int>> v1(7, std::vector<int>(3));
for (int i = 0; i != 7; ++i) {
for (int j = 0; j != 3; ++j) {
v1[i][j] = i + j;
}
}
// Display
for (const auto& row : v1) {
for (const auto& e : row) {
std::cout << e << " ";
}
std::cout << "n";
}
在使用v1[x]
之前,您需要将空的vector<int>
放入v1
中:
vector< vector<int> > v1;
for(int i = 0;i < 7;i++)
{
v1.push_back(vector<int>());
for(int j = 0;j < 3;j++)
{
v1[i].push_back(i + j);
cout << v1[i][j] << " ";
}
cout << "n";
}
类型vector< vector<int> > v1;
不知何故令人困惑,但两个向量具有不同的含义。第一个是定义v1
的类型,此时,v1
变成一个空向量。与此相反,第二个向量只是意味着v1
可以保存的类型。因此,在定义它时,v1
已经准备好使用,而v1[x]
还没有创建。
是的,你的代码崩溃很明显。
试试这个:
std::vector< std::vector<int> > v1;
for (int i = 0; i < 7; ++i)
{
v1.push_back(std::vector<int>());
for (int j = 0; j < 3; ++j)
{
v1[i].push_back(i + j);
std::cout << v1[i][j] << " ";
}
std::cout << "n";
}
编辑:好吧…已经回答了,太迟了;-)
相关文章:
- 必须首先打印向量 v1 中最接近整数 x 的数字<int>
- 如何在 c++ 中打印存档中的对象向量
- 如何在C++中打印对象向量的内容
- 从函数返回向量以打印内容
- 为什么 c++ 不能打印向量 B[0]?
- 打印出对象向量中的每个元素C++
- 有没有办法搜索向量的元素,<String>然后检查它是否包含特定的字符,如果它确实打印了它
- 在结构向量中搜索一个数据成员,然后打印匹配的所有数据成员
- 如何在C 中打印字符串向量的向量
- 如何打印出唯一指针对象向量中的值(基于范围的循环)?C++
- 无法打印字符向量C++向量
- 在 C++ 中声明向量后无法打印任何内容
- 如何修复向量不从文件打印值
- Windbg C 如何打印向量内容
- 如何在C 中打印一个对象的2D向量
- circle类和班级成员的打印向量发行
- 在向量内打印地图
- 类类型向量的打印内容
- 如何使用 vector.begin() 将向量的向量打印到 vector.end()
- 使用引用此对象的基类指针向量打印派生类对象