gpt4 book ai didi

c++ - 动态数组——读取

转载 作者:搜寻专家 更新时间:2023-10-31 01:44:16 28 4
gpt4 key购买 nike

 class Sesion
{
private:
int wymiar = 2;
int **tablica = new int *[wymiar];
int licznik = 0;

void save(int x, int y)
{
for (int i = 0; i < wymiar; i++)
tablica[i] = new int[wymiar];

tablica[0][licznik] = x;
tablica[1][licznik] = y;

licznik++;
}

void open()
{
for (int i = 0; i < licznik; i++)
{
cout << tablica[0][i] << endl;
}
}
}

我不知道如何读取 open() 中的值,因为我在那里得到了奇怪的数字。

save() 中一切正常。我必须将 x 和 y 保存在无限数组中,然后从中读取这些值。

我知道我可以使用 Vector 但我需要使用动态数组来完成

最佳答案

你在不必要地使你的生活复杂化。以安全的方式自行管理内存分配/解除分配将成为一个 PITA。更不用说您的代码也受到内存泄漏的影响。

我还注意到您总是保存一对 int。你应该使用 std::pair或自定义结构/类,结合 std::vector相反。

这是一个例子:

class Sesion {
private:
std::vector<std::pair<int, int>> tablica;
public:
void save(int x, int y) {
tablica.emplace_back(x, y);
}

void open() {
for (auto p : tablica)
std::cout << std::get<0>(p) << ',' << std::get<1>(p) << '\n';
}
};

Live demo

关于c++ - 动态数组——读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23745112/

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