使用C++中的零初始化一个向量数组

pod*_*adu 1 c++ c++11

我想要一个向量数组,其中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;
}
Run Code Online (Sandbox Code Playgroud)

Mih*_*ayl 7

如果需要具有可变长度的数组,则应使用向量:

vector<vector<int>> seqArr(n);
for (int i = 0; i < n; ++i)
{
    seqArr[i].push_back(0);
}
Run Code Online (Sandbox Code Playgroud)

或者干脆

vector<vector<int>> seqArr(n, vector<int>(1, 0));   // n vectors with one element 0
Run Code Online (Sandbox Code Playgroud)

可变长度数组(VLA)是C99中没有的C99功能.在C++中,必须在编译时知道数组的大小.