如何用零填充剩余的位置?


#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()

但是我需要代码在数组0中为大小为10的向量。

:

1 2 3 
4 5 
6 


100 

Q2)


array<vector<int>,10>arr;
vector<int> arr[10];

你可以这样做:

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算法。

最新更新