3

如果我有这个浮点数组声明:

float tables[10];

如何将“表”数组的长度更改为 20?

另一个与 C++ 中的数组有关的问题:

我不能像这样声明一个数组:

int length=10;

float newTables[length]; // error C2133: 'newTables' : unknown size

提前致谢。

4

4 回答 4

14

您不能更改数组的长度。在 C++ 中,您应该使用一个std::vectorfor 动态数组:

#include <vector>

int main() {
    std::vector::size_type length = 10;
    std::vector<float> tables(length); // create vector with 10 elements
    tables.resize(20); // resize to 20 elemets
    tables[15] = 12; // set element at index 15 to value 12
    float x = tables[5]; // retrieve value at index 5
}
于 2012-04-11T08:09:01.313 回答
1

如果您可以在构建时定义数组的大小,则可以使用 #define

#DEFINE ARRAY_SIZE 20
float tables[ARRAY_SIZE];

或者如果您需要在运行时指定数组的大小,请使用 new

float* newtables;
newtables = new float[20];
于 2012-04-11T08:12:32.450 回答
1

C++ 中的数组具有固定长度。如果你想坚持使用纯数组,你需要使用malloc、realloc 和 free动态分配内存。但是,您应该更喜欢std::vectorstd::deque进行动态内存分配。

于 2012-04-11T08:13:18.770 回答
0

在 C++ 中运行程序时,您不能动态地更改数组的长度。关于您要声明数组的方式,我建议您执行以下操作:

const int length=10;
float newTables[length];

我不确定这是否是你想要的。在这种情况下,变量“length”是一个常数,在执行过程中不能改变。

我希望它对你有帮助。

于 2012-04-11T08:17:38.007 回答