【发布时间】:2014-11-26 12:03:29
【问题描述】:
我需要像std::array 这样的固定大小(快速)容器来存储这样的用户输入
用户输入:
n = {2,3,2,1}
生成的输出(在运行时):
m = {{2x3},{3x2},{2x1}}
如何归档对m 的快速访问?普通的std::vector 好像太慢了。
【问题讨论】:
-
"... 似乎太慢了。" 你在什么具体情况下测量了什么?您可以使用已调整大小的
std::vector<>。 -
请考虑您的程序逻辑将比用户输入和最终输出快无数倍。让我们说快十亿倍,只是为了取一个数字,尽管这个数字太小了。为什么还要更快?
-
为什么
std::vector在你看来这么慢? -
等待... 访问向量的时间很慢?使用权?与普通数组相比,访问向量的开销很小。为了获得比你需要进入工程领域更快的东西,比如缓存管理和其他东西。
-
“在我看来,非固定大小的容器有点慢” - 在发布模式下构建每种方法,使用合适的测试进行配置,发布结果证明向量是不够的 - 否则它没有发生。