解决方案1:
如果我有一个像
class car{ public: int a; string b; bool c;};
我可以建立200辆汽车的 vector :
std::vector<car> allcas;
allcars.resize(200)
在运行时,我只是这样做:
this_car=allcars[102];
然后 ....
解决方案2:
我有
std::vector<int> a; a.resize(200);
std::vector<string>b; b.resize(200);
std::vector<bool> c; c.resize(200);
this_car_a = a[102];
this_car_b = b[102];
this_car_c = c[102];
题:
哪一个更快?
有人有主意吗?在此先多谢!
最佳答案
与“结构 vector ”相比,“结构 vector ”具有几个优点:
另一方面,过早的优化是万恶之源:
因此,我的建议是默认使用 vector 结构,但请牢记 vector 结构作为替代(即,如果您期望顺序访问/本地访问模式,请确保稍后可以切换,但不要这样做)花费很多精力)。程序运行后,您可以对其进行概要分析,以查看对性能至关重要的部分的位置,并尝试使用 vector 结构和向量化操作来发挥最大作用。