以 C++ 为单位修改数组的长度

modifying length of an array in C++

本文关键字:数组 修改 C++ 为单位      更新时间:2023-10-16

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

float tables[10];

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

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

我不能声明这样的数组:

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

提前谢谢。

不能更改数组的长度。在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
}

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

#DEFINE ARRAY_SIZE 20
float tables[ARRAY_SIZE];

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

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

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

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

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

我不确定这是否是你想要的。在这种情况下,变量"长度"是一个常量,不能在执行中更改。

我希望它对你有所帮助。