将矢量<矢量>元素的值存储在<int>单独的容器上

Storing values for a vector<vector<int>> elements on a separate container

本文关键字:gt lt 单独 int 元素 矢量 存储      更新时间:2023-10-16

我的代码中有以下结构:

std::vector<std::vector<int>> elems;

并且 elems 中的每个元素(即整数的每个向量)都有我需要跟踪的某个双精度值。元素没有任何可以用作地图键的独特功能(我不喜欢使用它们的指针,但是 elems 向量在程序期间不断增长并被洗牌,因此它们的地址会发生变化)。

考虑到这一点,我想创建一个包含向量和双精度的类,并以这种方式修改结构:

std::vector<MyClass> elems;

因此,价值直接在那里,但我不知道这会对性能产生多大影响。有没有人有更好的解决方案,或者可以指出我可以找到有关此案的更多信息的地方?
提前谢谢大家。

我想创建一个包含向量和双精度的类,并以这种方式修改结构:

std::vector<MyClass> elems;

这是绝对有效的,并且是将double值与整数集合组合在一起的合理选择。我建议使用这样的普通struct

struct DoubleAndVec {
    double value;
    std::vector<int> vec;
};

花点时间想想好的名字,它们在这里是必不可少的(MyClass例如可以改进以及DoubleAndVec)。

说到性能,在遇到瓶颈之前不要考虑它。如果您这样做,请分析并检查此设计选择是否对您的程序性能有任何影响 - 我对此表示严重怀疑。