gpt4 book ai didi

c++ - 二维 vector 与一维 vector

转载 作者:行者123 更新时间:2023-11-30 01:08:48 24 4
gpt4 key购买 nike

在 C++11 中,二维 vector 与一维 vector 的时间关系如何?
在给定的二维 vector 中,所有内部 vector 的大小都相同。

例如:

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

对比

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

当随机访问元素时, vector 的哪个化身会表现更好?

最佳答案

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

std::vectorstd::vector 有更多的开销,但它也更强大(例如,因为每个内部 vector 可以有不同的大小)。

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

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

关于c++ - 二维 vector 与一维 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41400116/

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