向量映射作为实例成员的C 地图

C++ map of map of vectors as instance member

本文关键字:地图 成员 实例 映射 向量      更新时间:2023-10-16

我需要以下数据结构来存储一些数据:

std::map<int, std::map<unsigned long, std::vector<unsigned long> > > lifetime ;

以上map将是类的实例成员。问题是,当我首次访问时,我是否需要使用new或构造函数来显式初始化内部容器?例如:

if (this->lifetime[sm].find(address) == this->lifetime[sm].end()) {
    (this->lifetime[sm])[address] = std::vector<unsigned long>() ;
}

我似乎也不了解媒介和地图如何初始化为实例成员的细节,因此我也很喜欢对此进行一些解释。

如果使用operator[],则不必要。当operator[]用于引用尚不存在的元素时,将自动创建条目,并使用mapped_type值initialized。