我记得c++ primer说过2d向量是非常低效的,应该避免。但是二维数组在创建和删除方面似乎都相当不方便。
还有没有别的办法呢?或者二维向量仍然可以与二维数组竞争?
发布于 2016-08-04 18:43:39
我怀疑这有什么关系。还有其他更重要的因素。
我会质疑开始的前提:
2d矢量效率低下
有时我们为了更好的抽象而牺牲了纯粹的速度。我敢打赌,与原始字节或字符数组相比,std::string
类在某些方面可能会被认为是低效的,但我仍然会使用它。
如果你不再担心宽泛的语句,而是专注于你的用例,你会有一个更好的案例。
据我所知,2D数组最常见的应用是向量、矩阵和线性代数。这个问题还有其他比底层数据结构的选择更重要的因素。
由于C++是一种面向对象的语言,您可以通过从一个接口开始并创建使用向量和数组的实现来轻松地解决这个问题。根据有意义的数据集和度量对它们进行测试。
https://stackoverflow.com/questions/38765020
复制相似问题