解决方案1: 如果我有类似的课程,
class car{ public: int a; string b; bool c;};
我可以建立200辆汽车的向量:
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];
问题:哪个更快?
有人有主意吗?提前非常感谢!
与“结构的向量”相比,“向量的结构”具有几个优点:
另一方面,过早的优化是万恶之源:
因此,我的建议是默认使用向量结构,但请牢记向量结构作为替代(即,如果您希望使用顺序/本地访问模式,请确保稍后可以切换,但不要这样做)花费很多精力)。程序运行后,您可以对其进行概要分析,以查看对性能至关重要的部分的位置,并尝试使用向量结构和向量化操作来发挥最大作用。