mul*_*lle 2 c++ constructor initialization vector
如何在具有零值的类的contstructor中初始化二维向量?这不起作用:
#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;
};
Run Code Online (Sandbox Code Playgroud)
我是否必须编写析构函数来释放向量?
更新: OP的代码现在从C++ 11开始有效.
早期版本的C++的原始答案:
你需要像这样写:
vector< vector<element_type> > data;
Run Code Online (Sandbox Code Playgroud)
因为>>否则被解析为流操作符,这在此处无效.而且:不,你不需要在析构函数中释放它,因为你不是在堆上创建它.
| 归档时间: |
|
| 查看次数: |
2567 次 |
| 最近记录: |