小编vac*_*vac的帖子

使用C++ 11的文章Generic <Programming> Typed Buffers完全过时了吗?

我正在阅读Generic <Programming> Typed Buffers,这是一篇来自Andrei Alexandrescu的老文章.

我想知道它是否仍然有意义.在他的文章中,Alexandrescu指出了std::vector性能至关重要时的一些问题:

  • 在分配我认为可以使用的解决方案时,不必要的数据初始化 std::vector::reserve
  • 昂贵的移动操作,用C++ 11解决并移动语义
  • 大多数编译器不优化std::vector类型,例如char使用std::memcpystd::memmove.对于主流编译器来说这是不真实的(从我所看到的).
  • 指数增长.您无法std::vector通过简单的方法调用来缩小适合大小的容量.从C++ 11开始,这也是不真实的std::vector::shrink_to_fit()

我的问题是,这篇文章是完全过时的,我现在可以依赖向量(如果需要包括自定义分配器)来拥有一个快速连续的缓冲区吗?

c++ stl vector c++11

8
推荐指数
1
解决办法
305
查看次数

标签 统计

c++ ×1

c++11 ×1

stl ×1

vector ×1