我想要一个向量数组,其中0作为所有单个向量中的单个元素。有更有效的方法吗?这有用吗?
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
int lastAnswer = 0;
int n,q;
cin >> n >> q;
vector<int> seqArr[n];
for(int i=0;i<n;i++)
{
fill(seqArr[i].begin(),seqArr[i].end(),0);
}
return 0;
}
答案 0 :(得分:7)
如果需要具有可变长度的数组,则应使用向量:
vector<vector<int>> seqArr(n);
for (int i = 0; i < n; ++i)
{
seqArr[i].push_back(0);
}
或只是
vector<vector<int>> seqArr(n, vector<int>(1, 0)); // n vectors with one element 0
Variable-Length-Array (VLA)是C99中没有的C99功能。在C ++中,必须在编译时知道数组的大小。
答案 1 :(得分:2)
由于可变长度数组不是c ++的一部分,我建议使用向量向量,这也解决了初始化问题:
vector<vector<int>> sequArray(n,{0}); //vector of n vectors, each containing a single 0