std矢量中数据类型的初始化

initialization of data types in a std vector

本文关键字:初始化 数据类型 std      更新时间:2023-10-16

好的,我目前正在使用std载体构建一个矩阵,该矩阵上有一个细胞或细菌。正因为如此,我上了一堂"死亡"课,成为细胞和细菌之母。因此,在矩阵中,一个没有它们的情况将是死的。

但当我试图构建矩阵时,可以这样做:world[x][y]=新细胞()/world[x][y=新细菌();它不会编译。

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

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

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

matrixB是

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

BacteriaM是一个从死亡中继承的类;n由用户定义。(很抱歉语法和编程不好,我是编程新手)

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

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

您必须小心管理元素的内存。可能值得一看智能指针(std::shared_ptrstd::unique_ptr——以更正确的为准)。

希望这能有所帮助。

您遇到的主要问题是new运算符。我假设您在创建对象时不习惯C++C++new运算符并不是简单地创建一个对象,而是一个指向对象的指针。因此,您可以转到matrix[x][y] = cell()或更改为vector< vector < dead* > >,然后按照@Duthomhas所说的选择智能指针。这样你就可以更好地管理内存,尤其是当你处理一个向量时。

注意:注意cell()构造函数C++会感到困惑,以为你在声明一个函数。。。