c++ - 对象容器的性能与指针容器的性能

标签 c++ pointers c++11 optimization containers

class C { ... };
std::vector<C> vc;
std::vector<C*> pvc;
std::vector<std::unique_ptr<C>> upvc;

根据 C 的大小,按值存储或按指针存储的方法效率更高。

是否可以大致知道这个大小(在 32 位和 64 位平台上)?

最佳答案

是的,这是可能的 - 对其进行基准测试。由于如今 CPU 缓存的工作方式,事情不再简单了。

查看 Bjarne Stroustrup 关于链表的讲座: https://www.youtube.com/watch?v=YQs6IC-vgmo

这是 Scott Meyers 关于 CPU 缓存的精彩演讲:https://www.youtube.com/watch?v=WDIkqP4JbkE

关于c++ - 对象容器的性能与指针容器的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28949404/

相关文章:

c++ - 如何接收、修改和替换文本文件中的一行?

c++ - 如何在 Xcode 9.0 中使用 OpenMP

c - C 中 Union Struct 的动态数据结构

c - 字符串(命令行)如何存储在 char**argv 和 int *argv 中?

macos - 命名空间 'nullptr_t' 中没有名为 'std' 的类型

c++ - std::pair 正在为其成员之一调用默认构造函数

c++ - Matlab 代码生成 : Does not support anonymous functions

c++ - 如何按字母顺序将字符串列表(文本格式)插入到容器中?

c - 单独使用时难以理解 c 指针

c++ - 为什么 std::queue 不实现 insert() 而 std::deque 实现?