我想知道如果它是更快地具有std::vector<std::vector<double>>其中嵌套矢量总是有2个元素,或者是它更快地具有std::vector<MyPoint>其中MyPoint就像定义:
struct MyPoint {
double Point[2];
};
Run Code Online (Sandbox Code Playgroud)
谢谢
Ste*_*sop 11
这vector<MyPoint>是可取的,因为MyPoint很可能:
vector<double>(你可以查看sizeof),和/或例如在我的32位gcc上,std::vector<double>大小为12,而MyPoint大小为16,但向量进行了额外的分配.在64位实现上,MyPoint几乎肯定会有相同的大小,但std::vector可能会更大.
此外,向量表示使用连续内存的可变大小的有序容器.因此,对于size-2数组来说,它可能有点过分,因为使用向量会引入大小可能会发生变化的可能性.
我假设在第二个例子中你的意思是:std::vector<MyPoint>?是的,这种变体会更有效率.例如,您可以更轻松地保留大量内存,并且您必须减少总体分配.
而不是MyPoint你也可以使用std::pair<double, double>.
| 归档时间: |
|
| 查看次数: |
262 次 |
| 最近记录: |