2D向量与1D矢量

2D vector vs 1D vector

本文关键字:矢量 1D 向量 2D      更新时间:2023-10-16

在C 11中,在时间上如何对1D向量的2D向量?
在给定的2D矢量中,所有内部向量均具有相同的大小。

ex:

std::vector<std::vector<int>> X{10, std::vector<int>(4)};

vs

std::vector<int> Y(40);

随机访问元素时,矢量的哪个头像会表现更好?

单个std::vector本质上更简单,它只是存储在某个地方的内存的连续块。

std::vectorstd::vector具有更多的开销,但也更强大(因为每个内部向量的大小可能不同)。

随机访问性能应针对您的特定使用模式进行彻底的基准测试,但主要区别在于:

  • 使用单个向量,您只需计算size_t index = x + y*WIDTH并访问元素
  • 使用嵌套向量,您有两个间接级别,首先必须获得包含内部向量的内存,然后您必须获得内部向量数据的内存。