c++ - 如何在 C++ 中更改 STL 容器的大小

标签 c++ memory stl containers

我有一段用指针和动态内存编写的性能关键代码。 我想用 STL 容器重写它,但我有点担心性能。有没有办法在不初始化数据的情况下增加容器的大小?

例如,而不是做

ptr = new BYTE[x];

我想做类似的事情

vec.insert(vec.begin(), x, 0);

然而,这会将每个字节初始化为 0。难道没有办法让 vector 增长吗? 我知道 reserve() 但它只是分配内存,它不会改变 vector 的大小,并且在我插入有效数据之前不允许我访问它。

谢谢大家

最佳答案

vector.resize(...)可能有帮助吗?您可以指定要调整到的大小(变大或变小),还可以初始化您希望将新元素初始化为的大小。

关于c++ - 如何在 C++ 中更改 STL 容器的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2676988/

相关文章:

c++ - 如何防止递归函数中不必要的内存使用

c++ - 当在创建子项后设置父项时,子项对事件是透明的

c++ - 在 C++ 中创建多个动态分配的对象

C++ 多线程 - 内存同步

c++ - 如何从 C++14 中的广义 lambda 捕获返回包含 std::unique_ptr 的 std::function?

winapi - 如何确定最佳线程堆栈大小?

c++ - 如何从极长的 C++ 字符串生成 char* kmers

c++ - std::iterator 是否继承自某种 auto_ptr?

c++ - 为什么 (i|o)fstream 使用 const char* 参数作为文件名?

c++ - C++中的unordered_set是否存在任何顺序?