对于一个简单的1D向量,我可以像这样轻松地打印出向量的元素。
#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;
}
}
后一个显示了一些分割错误。你能建议如何正确地做第二个(向量数组(吗?
您将不得不使用2D数组而不是1D数组。array[j].push_back(i*j*2)
完全错误。如果你想使用1D矢量,你可以做arr[j]=i*j*2
,但由于你想在一个位置推动多个元素,你必须使用2D矢量,那么你可以在特定位置推动多个子元素,我想这是你的最终目标。
#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矢量。