#include <bits/stdc .h>
using namespace std;
int main()
{
array<vector<int>,10>arr1;
arr1[0].push_back(1);
arr1[0].push_back(2);
arr1[0].push_back(3);
arr1[1].push_back(4);
arr1[1].push_back(5);
arr1[2].push_back(6);
arr1[7].push_back(100);
for(auto i:arr1){
for(auto j :i)
cout<<j<<" ";cout<<"\n";}
}
我正在創建向量陣列并推送一些值,但我無法弄清楚如何使剩余的位置為零。我有一個想法,首先讓每個陣列內的所有向量都保存大小為 10 的零。而不是使用 push_back ,我將使用 at()。
但我需要代碼來制作大小為 10 的陣列零內的向量。
輸出 :
1 2 3
4 5
6
100
Q2)
之間有什么區別
array<vector<int>,10>arr;
和
vector<int> arr[10];
uj5u.com熱心網友回復:
你可以做:
array<std::vector<int>,10>arr1;
for ( auto& vec : arr1 )
vec = std::vector<int>(10, 0);
0s默認情況下填充所有向量。但是,您不能再這樣做了,push_back因為它會插入到該11th位置。
第二個問題:
它們都是等價的(靜態陣列包含指向動態陣列的指標)。array<vector<int>,10>arr可能是更好的方法,因為它允許您使用范圍回圈和其他 STL 演算法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/321514.html
上一篇:帶有用戶的物件,當2個值匹配(名字、姓氏)時洗掉除一個以外的所有物件
下一篇:如何根據條件對物件陣列進行排序?
