打印矢量数组c++



对于一个简单的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矢量。

最新更新