如何初始化结构上的向量向量?

ana*_*ius 53 c++ vector

如果我有一个NxN矩阵

vector< vector<int> > A;
Run Code Online (Sandbox Code Playgroud)

我应该如何初始化它?

我试过没有成功:

 A = new vector(dimension);
Run Code Online (Sandbox Code Playgroud)

既不是:

 A = new vector(dimension,vector<int>(dimension));
Run Code Online (Sandbox Code Playgroud)

Jos*_*eld 109

new用来执行动态分配.它返回一个指向动态分配对象的指针.

您没有理由使用new,因为它A是一个自动变量.您可以A使用其构造函数进行初始化:

vector<vector<int> > A(dimension, vector<int>(dimension));
Run Code Online (Sandbox Code Playgroud)

  • @LiLou_你必须初始化struct的构造函数.或者从临时文件复制到成员:`myStructVble-> A = vector <vector <int >>(dimension,vector <int>(dimension));` (3认同)

Ker*_* SB 14

像这样:

#include <vector>

// ...

std::vector<std::vector<int>> A(dimension, std::vector<int>(dimension));
Run Code Online (Sandbox Code Playgroud)

(Pre-C++ 11你需要在有角度的括号之间留下空格.)