初始化具有不同值的向量

时间:2016-10-27 08:47:17

标签: c++

我有以下结构:

{{1}}

m_parts可以有不同的int值(const)及其计数。 例如。型号401将具有:6661,6662,6669,6674; 型号402:6669,6670; 等

获得这些东西的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

raw 拥有存储在STL容器中的指针通常是一个坏主意,并且是bug的来源:

const multimap<int, SModelData*> models_data =

我更喜欢使用 smart 拥有指针(例如shared_ptr<SModelData>用于共享所有权语义,或unique_ptr<SModelData>用于唯一所有权语义),或者只使用SModelData

此外,您确定要使用multimap吗?

也许带有值的map会很好吗?

e.g:

const map<int, SModelData> models_data

要初始化const map,您可以使用C ++ 11初始化列表或lambda,例如:

const auto models_data = []() -> map<int, SModelData> {
    map<int, SModelData> data;

    // ... Fill your map

    return data;
}();