在C ++中修改数组的长度

时间:2012-04-11 08:07:16

标签: c++

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

float tables[10];

如何将'tables'数组的长度更改为20?

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

我不能声明这样的数组:

int length=10;

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

提前致谢。

4 个答案:

答案 0 :(得分:14)

您无法更改数组的长度。在C ++中,您应该使用std::vector作为动态数组:

#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
}

答案 1 :(得分:1)

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

#DEFINE ARRAY_SIZE 20
float tables[ARRAY_SIZE];

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

float* newtables;
newtables = new float[20];

答案 2 :(得分:1)

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

答案 3 :(得分:0)

在C ++中运行程序时,无法以动态方式更改数组的长度。关于你想要声明数组的方式,我建议你:

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

我不确定这是不是你想要的。在这种情况下,变量“length”是常量,在执行时不能更改。

我希望它可以帮到你。