gpt4 book ai didi

c++ - 使用私有(private)对象变量时如何稍后初始化数组(初始化对象后)

转载 作者:行者123 更新时间:2023-11-30 04:49:05 26 4
gpt4 key购买 nike

我想在创建对象时首先初始化“虚拟”数组。我在类(class)的私有(private)部分有这个。

// Initialize dummy array when object is initialized.
int* matrix_[0][0];

然后我想稍后初始化新数组以替换虚拟数组(具有实际大小的数组)。我在类里面有这个方法:

void set_map_size(int width, int height) {
int* pm[width][height];
matrix_ = pm;
}

所以问题是当我在创建对象后尝试初始化这个数组时。我希望其他方法/其他对象能够访问此数组。

也许我应该有指针?在创建对象时将指针初始化为 nullptr,然后将指针更改为指向数组?

最佳答案

在 C++ 中执行此操作的正确方法是使用 vector 。

vector<vector<int>> matrix_;  

然后您可以动态调整矩阵的大小

void set_map_size(int width, int height) {
matrix_.resize(height);
for (auto &x : matrix_)
x.resize(width);
}

因为数组是固定大小的,可变长度数组不是标准的 C++(即使一些编译器接受它)。

关于c++ - 使用私有(private)对象变量时如何稍后初始化数组(初始化对象后),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55550805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com