在C中,我会用它来完成它realloc.
在C++中,通常会考虑使用STL vector类.
但是如何在不使用上述任何解决方案的情况下在C++中正确调整数组大小?
realloc在C++中没有很好的等价物.您需要手动复制数组并复制旧元素.幸运的是,由于std::copy功能<algorithm>,这不是太糟糕:
size_t k = /* ... */
T* buffer = /* .. get old buffer of size k. .. */
T* newBuffer = new T[newSize]; // Assume newSize >= k
std::copy(buffer, buffer + k, newBuffer);
delete [] buffer;
buffer = newBuffer;
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
编辑:重新排序最后两行!哎呦!