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

C++ 修改C+中数组的长度+;,c++,C++,如果我有这个浮点数组声明: float tables[10]; 如何将“tables”数组的长度更改为20 另一个与C++中的数组相关的问题: 我不能声明这样的数组: int length=10; float newTables[length]; // error C2133: 'newTables' : unknown size 提前感谢。您不能更改数组的长度。在C++中,您应该使用 STD::vector < /C>动态数组: #include <vector> int

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

float tables[10];
如何将“tables”数组的长度更改为20

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

我不能声明这样的数组:

int length=10;

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

提前感谢。

您不能更改数组的长度。在C++中,您应该使用<代码> STD::vector < /C>动态数组:

#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
}
#包括
int main(){
标准::向量::大小\类型长度=10;
std::vector表(长度);//创建包含10个元素的向量
tables.resize(20);//调整大小为20个元素
表[15]=12;//将索引15处的元素设置为值12
float x=表[5];//检索索引5处的值
}

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

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

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

<> C++中的数组具有固定长度。如果您想坚持使用纯数组,则需要使用动态分配内存。但是,对于动态内存分配,您应该更喜欢or

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

const int length=10;
float newTables[length];
我不确定这是不是你想要的。在这种情况下,变量“length”是一个常量,在执行过程中不能更改


我希望它能帮助您。

值得注意的是,如果您使用'new'@Habba:行:newTables=new float[20],您还必须删除分配的内存。我遇到一个错误:错误C2440:'=':无法从'float*'转换为'float[]@TomP89我可以删除分配的内存。这应该不是问题。@devn:我修复了代码。如果没有IDE,我似乎无法编写代码。:)是的,你说得对!声明指针只是修复了代码。谢谢我想在声明数组后调整其长度。
const int length=10;
float newTables[length];