在C ++ 11中,2D矢量如何在时间方面对抗1D向量? 在给定的2D矢量中,所有内部矢量具有相同的大小。
例如:
std::vector<std::vector<int>> X{10, std::vector<int>(4)};
vs
std::vector<int> Y(40);
当随机访问元素时,矢量的哪个化身会表现得更好?
答案 0 :(得分:5)
单个std::vector
本质上更简单,它只是存储在某处的连续内存块。
std::vector
的{{1}}有更多的开销,但它也更强大(例如,因为每个内部向量可以具有不同的大小)。
随机访问性能应根据您的特定使用模式进行彻底基准测试,但主要区别在于:
std::vector
并访问元素