gpt4 book ai didi

c++ - vector 清除与调整大小

转载 作者:IT老高 更新时间:2023-10-28 23:11:01 25 4
gpt4 key购买 nike

我在网上读到,如果您要反复清除 std::vector(在紧密循环中),使用 resize(0) 可能会更好而不是 clear(),因为它可能更快。我不确定这一点。有人对此有明确的答案吗?

最佳答案

我假设您的意思是 resize(0) 而不是 setsize,并调用它而不是 clear(),并且您是谈论std::vector。 IIRC 最近的一个答案讨论了这个(找不到链接),在现代 STL 实现中,clear() 可能与 resize(0) 相同。

之前清除一个 vector 可能已经释放了它所有的内存(即它的容量也降为零),当你再次开始添加元素时会导致重新分配,这与 resize(0) 保持容量相反所以重新分配的次数更少。但是,我认为在现代 STL 库中没有区别。如果您使用的是旧的 STL 实现,或者您只是偏执狂,resize(0) 可能会更快。

关于c++ - vector 清除与调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2738967/

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