如何在零值的构造函数中初始化二维向量?这不起作用:
#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;
};
我是否必须编写析构函数来释放向量?
答案 0 :(得分:5)
更新: OP的代码现在从C ++ 11开始有效。
早期版本的C ++的原始答案:
你需要这样写:
vector< vector<element_type> > data;
因为>>
被解析为流操作符,这在此处无效。而且:不,你不需要在析构函数中释放它,因为你没有在堆上创建它。
答案 1 :(得分:2)
我是否必须编写析构函数来释放向量?
不,因为您没有在构造函数中获取任何资源。这就是RAII的美丽。