C++ std向量中数据类型的初始化

C++ std向量中数据类型的初始化,c++,c++11,vector,initialization,syntax-error,C++,C++11,Vector,Initialization,Syntax Error,好的,我正在用std载体构建一个矩阵,这个矩阵上有一个细胞或细菌。正因为如此,我上了一个“死亡”班,成为细胞和细菌之母。因此,在矩阵中,一个没有任何一个的情况将是死的 但是当我试图构建矩阵时,通过这样的方式:world[x][y]=new cell()/world[x][y]=new bacterie();它不会编译 所以我的问题是,如何初始化它 这是我的密码,是西班牙语对不起 matrizB[fila-1][columna-1] = new BacteriaM(); matrizB是一个

好的,我正在用std载体构建一个矩阵,这个矩阵上有一个细胞或细菌。正因为如此,我上了一个“死亡”班,成为细胞和细菌之母。因此,在矩阵中,一个没有任何一个的情况将是死的

但是当我试图构建矩阵时,通过这样的方式:world[x][y]=new cell()/world[x][y]=new bacterie();它不会编译

所以我的问题是,如何初始化它

这是我的密码,是西班牙语对不起

matrizB[fila-1][columna-1] =  new BacteriaM();
matrizB是一个

vector<vector <dead>> matrizB(n); 
向量矩阵b(n);
BacteriaM是一个从死者身上继承下来的类;n由用户定义。
(抱歉语法和编程不好,我是编程新手)

为了使用多态性,您的矩阵元素必须是指针

向量矩阵b(n);
您必须小心管理元素的内存。可能值得一看智能指针(
std::shared_ptr
std::unique_ptr
——以更正确的为准)


希望这有帮助。

您遇到的主要问题是新的
操作员。假设你在创建对象时不习惯C++。不只是创建一个对象,而是一个指向对象的指针。因此,您可以转到
matrix[x][y]=cell()
或更改为
vector
,并按照@Duthomhas所说的选择智能指针。这样可以更好地管理内存,尤其是在处理向量向量时

C++会混淆,认为你在声明函数…< /p>代码>向量矩阵(n);<代码>您缺少星号。

vector<vector <dead*>> matrizB(n);