如何用零填充剩余位置?
hHow to fill remaining places with zeros?
#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];
你可以这样做:
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 算法。
#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];
你可以这样做:
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 算法。