gpt4 book ai didi

C++:调整动态分配数组大小的正确方法是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:08:45 25 4
gpt4 key购买 nike

在 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;

希望这对您有所帮助!

编辑: 重新排序最后两行!哎呀!

关于C++:调整动态分配数组大小的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5371162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com