gpt4 book ai didi

c++ - 在 std::vector 中存储指针

转载 作者:行者123 更新时间:2023-11-28 04:32:56 29 4
gpt4 key购买 nike

假设我有一些包含许多数据成员的类 A。当我创建此类的 vector 时 std::vector<A> vec;并调用vec.push_back(A(...)); ,有时 vector 将不得不重新分配内存并将所有以前的对象移动到新内存中。这将复制许多 A 对象。我找到的解决方案是存储指向分配在堆上的 A 对象的指针。这将使 vector 复制 4 字节整数,这没问题,但我从未见过有人这样做,所以我不确定这是否是正确的方法。

这是标准的东西吗?

最佳答案

这里有一个简单的例子来说明 std::vector<A> 有多普遍。与 std::vector<A *> .我 grepped llvm 6.0.0因为它被许多人认为是 CPP 开发的领先标准。以下是结果:

$ grep -rn "vector<.*\*" | wc -l
613
$ grep -rn "vector<.*" | wc -l
1707

所以我想这个例子可以让您了解哪种口味更常见。当然,这只是一个代码库的示例...

关于c++ - 在 std::vector 中存储指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52397978/

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