gpt4 book ai didi

c++ - C++ 中的维动态数组

转载 作者:行者123 更新时间:2023-11-30 02:04:13 25 4
gpt4 key购买 nike

我用 C++ 编写代码才 15 天,我遇到了一些让我卡住的地方。我需要使用动态二维数组来满足我的目的。我使用 std::vector 创建一维动态数组,但我不知道如何创建二维动态数组。如果有帮助,我正在使用 VC++,但我不使用 VC++ 库函数。

有没有人知道如何完成它?

最佳答案

您可以使用嵌套 vector 来实现:

int number_of_rows, number_of_columns;

std::vector < std::vector <int> > array;

array.resize(number_of_rows);

for (int i=0; i < number_of_rows; ++i)
array[i].resize(number_of_columns);

array[1][2] = 3; // e.g. of assignment

在构造函数中初始化完整的数组大小:

std::vector <std::vector <int> > (nor, std::vector<int>(noc));

但是请注意,嵌套的 std::vector 结构不会将您绑定(bind)到二维数组——每个嵌套的 vector 都可以有不同的大小。例如:

std::vector <std::vector <int> > not_array(3); 
// contains 3 inner empty vectors
for (int i=0; i < 3; ++i)
arrray[i].resize(i+1);

现在 not_array 包含大小为 1、2 和 3 的 vector 。

如果您想确保使用的是矩阵 (2D),而不仅仅是 (1D) vector 的 vector ,您可以使用外部库中的实现。

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

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