gpt4 book ai didi

c++ - C++中 vector 的 vector 的顺序

转载 作者:行者123 更新时间:2023-12-01 14:47:57 25 4
gpt4 key购买 nike

我正在使用结构 std::vector< std::vector<double> >将二维数据存储在大小为 NxM 的 C++ 代码中。如果 N 与 M 非常不同,是否存在与我存储数据的顺序相关的性能问题?

例如,假设 N = 3 和 M = 100000,我想构建 3 个大小为 100000 的 vector 比构建 100000 个大小为 3 的 vector 要快。但是例如,如果我使用大量 push_back填充它们(假设我不知道初始大小),另一种方法不是更快吗?

最佳答案

I suppose it is faster to build 3 vectors of size 100000 than 100000 vectors of size 3.



几乎可以肯定,是的(而且相当多)!

... if I am using a lot of push_back to fill them (assuming I don't know the initial size).



如果您至少知道(或怀疑)最大大小可能是多少,您可以使用 reserve(nMax) 使用 push_back 在循环之前执行函数电话,然后调用 shrink_to_fit(nAct) 之后,释放不需要的内存。这种方法将减少由(可能很多)重新分配调用引起的开销。

关于c++ - C++中 vector 的 vector 的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61544820/

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