std矢量中数据类型的初始化
initialization of data types in a std vector
好的,我目前正在使用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_ptr
或std::unique_ptr
——以更正确的为准)。
希望这能有所帮助。
您遇到的主要问题是new
运算符。我假设您在创建对象时不习惯C++。C++的new
运算符并不是简单地创建一个对象,而是一个指向对象的指针。因此,您可以转到matrix[x][y] = cell()
或更改为vector< vector < dead* > >
,然后按照@Duthomhas所说的选择智能指针。这样你就可以更好地管理内存,尤其是当你处理一个向量时。
注意:注意cell()
构造函数C++会感到困惑,以为你在声明一个函数。。。
相关文章:
- 需要帮助在 c++ 中将字符串转换为字符 ----错误 "const char *" 类型的值不能用于初始化 "char" 类型的实体
- 从 BubbleSort* 类型的右值初始化 'AssortedSorter&' 类型的非常量引用无效"
- 是否可以使用右值初始化数据成员?
- 通过 C++ 中的重载构造函数初始化未知类型的变量
- 无法使用 'const Node *' 类型的右值初始化 'Node *' 类型的变量
- 构造函数正在初始化数据成员
- 初始化数据成员取决于构造函数中的条件
- 初始化一个类型向量的巨大向量<int>
- 智能感知:不能使用 "PVOID" 类型的值初始化 "_NtQuerySystemInformation" 类型的实体
- openGL如何处理发送给它的空/未初始化数据?
- C++:无法使用条件类型在模板函数中使用 'double' 类型的 lvalue 初始化 'char*' 类型的参数
- 将结构化数据类型从Fortran传递到C
- C++用值初始化聚合类型的std::数组
- 克里昂未初始化记录类型:播放器
- 初始化结构类型的静态变量
- 如何修复"无法使用类型为 value_type(又名派生*)的左值初始化 Base* 类型的返回对象?
- 如何在C 11中正确初始化数据成员
- 如何初始化具有类型特征的类模板的静态数据成员
- 如何创建一个可以初始化c++数据类型的类
- 当初始化数据类型char*和非char*时