可能重复:
您可以在初始化后调整C++数组的大小吗?
我需要在C++中使用以下C#代码
Array.Resize(ref A, A.Length - 1);
Run Code Online (Sandbox Code Playgroud)
如何在C++中实现这一目标?
Kir*_*kov 35
您无法调整数组大小,只能分配新的数组(具有更大的大小)并复制旧数组的内容.如果您不想使用std::vector(出于某种原因),这里的代码是:
int size = 10;
int* arr = new int[size];
void resize() {
size_t newSize = size * 2;
int* newArr = new int[newSize];
memcpy( newArr, arr, size * sizeof(int) );
size = newSize;
delete [] arr;
arr = newArr;
}
Run Code Online (Sandbox Code Playgroud)
代码来自http://www.cplusplus.com/forum/general/11111/.
sbi*_*sbi 31
数组的大小在C++中是静态的.您无法动态调整大小.这std::vector是为了:
std::vector<int> v; // size of the vector starts at 0
v.push_back(10); // v now has 1 element
v.push_back(20); // v now has 2 elements
v.push_back(30); // v now has 3 elements
v.pop_back(); // removes the 30 and resizes v to 2
v.resize(v.size() - 1); // resizes v to 1
Run Code Online (Sandbox Code Playgroud)