Std :: vector和Constructor

sca*_*bly 0 c++ project

我有一些像这样的代码:

class A{

public: 
A();

private:
vector<vector<int> > mat;
int a;

}
Run Code Online (Sandbox Code Playgroud)

默认构造函数应该如何?像这样?

A::A(): mat(10(10)),a(0){};
Run Code Online (Sandbox Code Playgroud)

但是对我来说还有一个问题..我不知道"行"的数量.(vector<vector<int> >应该有n个元素,并且vector<int>应该有4个元素)而且我也有访问元素的问题vector<vector<int> >.所以你能告诉我怎么做吗?谢谢.:)

jro*_*rok 5

此参考页面上使用(2)下的构造函数:

A::A() : mat(10, std::vector<int>(10)), a(0) { }
Run Code Online (Sandbox Code Playgroud)

当然,您也可以传递变量.例如:

A::A(size_t n_rows, size_t n_cols) : mat(n_rows, std::vector<int>(n_cols)), a(0) {}
Run Code Online (Sandbox Code Playgroud)

要访问元素,您可以使用两个成功调用operator[]:

std::cout << mat[1][1];  // will print 0, as vector's elements are default initialized
Run Code Online (Sandbox Code Playgroud)

第一个调用返回一个引用vector<int>,第二个调用返回引用int.