[英]Printing an array of vectors c++
对于一个简单的一维向量,我可以像这样轻松打印出向量的元素。
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<double> myvector;
for(int i=0; i<10; i++){
myvector.push_back(i*2.0);
}
for (auto it = myvector.begin(); it != myvector.end(); ++it)
cout << ' ' << *it;
}
以同样的方式,现在我想创建一些向量数组,然后想要推回向量数组的元素,然后我想打印它们。 已经完成的方法是:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<double> array[10];
for(int j=1; j<=10; j++){
for(int i =0; i<=5; i++){
array[j].push_back(i*j*2);
}
}
for (int j=1; j<10;j++){
for (auto it = array[j].begin(); it != array[j].end(); ++it)
cout << ' ' << *it;
}
}
后一个显示一些分段错误。 你能建议如何正确地做第二个(向量数组)吗?
您将不得不使用二维数组而不是一维数组。 array[j].push_back(i*j*2)
是完全错误的。 如果您想使用一维向量,您可以执行arr[j]=i*j*2
但由于您想在一个位置推送多个元素,您必须使用二维向量,那么您可以在特定位置推送多个元素我猜是你的最终目标。
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<vector<double>> array(10);
for(int j=0; j<10; j++){
for(int i=0; i<=5; i++){
array[j].push_back(i*j*2);
}
}
for (int j=0; j<10;j++){
for (auto it = array[j].begin(); it != array[j].end(); ++it)
cout << ' ' << *it;
}
}
此外,请检查应预定义矢量大小的方式以及如何使用 2D 矢量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.