0
我想使用矢量矢量插入多個數組。
對於I/P是這樣的:使用矢量矢量的多個數組
2 : Number of array (can be vary)
3 1 2 3 : 3(size of array) 1 2 3(elements in array)
4 4 5 6 7 : 4(size of array) 4 5 6 7 (elements in array)
然後,我需要對它進行一些操作。
所有I/P都由用戶輸入。只給出它的範圍。
2 <= No of array <= 10
1 <= Elements in array <= 1000000
對於上面我嘗試以下方法:
int main()
{
int no_of_array, size;
long int num;
int j = 0;
cin >> no_of_array;
1路:
vector < vector<int> > array_vector[no_of_array];
while(no_of_array --)
{
cin >>size;
for(int i = 0; i < size ; i++)
{
cin >> num;
array_vector[j].push_back({num});
}
j++;
}
cout<< vector_array[1][2]; // Error
第二個辦法:
vector< vector<int> > array_vector;
while(no_of_array --)
{
cin >> size;
for(int i = 0 ; i < size ; i++)
{
cin >> num;
array_vector[j].push_back(num);
}
j++;
}
cout<< vector_array[1][2]; // Error
第三方式:(工作)
vector<vector<int> > array_vector;
for(int i = 0 ; i < no_of_array ; i++)
{
cin >> size;
vector<int> v;
for(int j = 0 ; j < size ; j++)
{
cin >> num;
v.push_back(num);
}
array_vector.push_back(v);
}
cout<<array_vector[1][2]; // No Error
我讀的地方第三種載體向量方式不適合競爭性編程。爲什麼?
用前兩種方法遍歷元素時我犯了什麼錯誤?
「......不適合競爭力的編程......」 - 那又怎麼樣?那些「競爭性編程」網站並不關心最佳實踐或編寫可維護的代碼。不要浪費你的時間在他們身上。無論如何,你只是要學習壞習慣和你很可能永遠不會在真實世界中使用的東西。寫*真正*程序並閱讀[好書](https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)。 –
@ Jesper Juhl真正的編程?請,你能舉個例子嗎? – Tushar
我的意思是寫真正的程序,你實際上*需要*或*想*寫,而不是從競爭性編程網站的愚蠢問題的解決方案。 –