gpt4 book ai didi

c++ - std::vector.pop_back() 会改变 vector 的容量吗?

转载 作者:IT老高 更新时间:2023-10-28 22:34:01 29 4
gpt4 key购买 nike

如果我在程序开始时使用 resize()reserve() 将 std::vector 分配到一定的大小和容量,是否有可能pop_back() 可能会“破坏”预留容量并导致重新分配?

最佳答案

没有。缩小 vector 容量的唯一方法是交换技巧

template< typename T, class Allocator >
void shrink_capacity(std::vector<T,Allocator>& v)
{
std::vector<T,Allocator>(v.begin(),v.end()).swap(v);
}

即使这样也不能保证按照标准工作。 (虽然很难想象它不会工作的实现。)

据我所知,C++ 标准的下一个版本(以前是 C++0x,但现在变成了 C++1x)将有 std::vector<>::shrink_to_fit() .

关于c++ - std::vector.pop_back() 会改变 vector 的容量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1536753/

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