gpt4 book ai didi

c++ - 如何设置 std::vector 的初始大小?

转载 作者:IT老高 更新时间:2023-10-28 11:52:45 26 4
gpt4 key购买 nike

我有一个 vector<CustomClass*>而且我在 vector 中放了很多项目,我需要快速访问,所以我不使用列表。如何设置 vector 的初始大小(例如设置为 20 000 个位置,以免插入新的时复制)?

最佳答案

std::vector<CustomClass *> whatever(20000);

或:

std::vector<CustomClass *> whatever;
whatever.reserve(20000);

前者设置数组的实际大小——即,使其成为一个包含 20000 个指针的 vector 。后者将 vector 留空,但为 20000 个指针保留空间,因此您可以插入(最多)那么多指针,而无需重新分配。

至少根据我的经验,其中任何一个都会在性能上产生巨大差异是相当不寻常的——但在某些情况下,两者都会影响正确性。特别是,只要不发生重新分配, vector 中的迭代器就保证保持有效,并且一旦您设置了大小/保留空间,您就可以保证只要您不进行任何重新分配' t 增加超出此大小的大小。

关于c++ - 如何设置 std::vector 的初始大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11457571/

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