gpt4 book ai didi

c++ - 调整外部 vector 的大小会复制内部 vector 吗?

转载 作者:搜寻专家 更新时间:2023-10-31 00:15:05 25 4
gpt4 key购买 nike

假设你有一个 vector 的 vector :

vector<vector<string> > v;

当调整外部 vector 的内部数组大小时(假设内部数组也必须重新分配到不同的地址),例如通过执行大量的 v.push_back(),是否内部 vector 的内部数组也被复制(因为 vector 的复制构造函数通常复制内部数组),或者 C++ 是否有办法调整外部 vector 的大小而不用递归复制所有内容?

C++11 移动构造函数会影响这个吗?这是否取决于 STL 实现?

最佳答案

是的,在 C++03 中,当外部 vector 需要重新分配时,会复制内部 vector 。在 C++11 中,它们被移动了。只要实现正确,它就取决于实现。如果实现正确,这就是行为。

关于c++ - 调整外部 vector 的大小会复制内部 vector 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20696946/

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