如何在类的构造函数中初始化向量

时间:2010-11-28 21:30:29

标签: c++ constructor vector initialization

如何在零值的构造函数中初始化二维向量?这不起作用:

#include <vector>
using namespace std;

class matrix {
 public:
  typedef int element_type;
  matrix(int dim):data(dim, vector<int>(dim, 0)) {
  }
 private:
  vector<vector<element_type>> data;
};

我是否必须编写析构函数来释放向量?

2 个答案:

答案 0 :(得分:5)

更新: OP的代码现在从C ++ 11开始有效。

早期版本的C ++的原始答案:


你需要这样写:

vector< vector<element_type> > data;

因为>>被解析为流操作符,这在此处无效。而且:不,你不需要在析构函数中释放它,因为你没有在堆上创建它。

答案 1 :(得分:2)

  

我是否必须编写析构函数来释放向量?

不,因为您没有在构造函数中获取任何资源。这就是RAII的美丽。