在映射C++中创建特定大小的向量

Creating a vector of specific size in a map C++

本文关键字:向量 映射 C++ 创建      更新时间:2023-10-16

嗨,假设我想创建一个map<int, vector<node> >形式的映射,其中定义了节点作为

struct node{
    string key;
    double pnum;
    node():key(""),pnum(0) {}
};

现在,如果有人给我一个地图键,说"Element_1",然后创建一个向量大小为2的可以/安全吗键"Element_1"下的矢量,如下所述?

int main(void)
{
    map<string,vector<node> > samplemap;    
    samplemap["Element_1"] = vector<node>(2);
}

上面的代码编译了,我可以打印出存储在键"Element_1"下的向量。(打印默认值(。

如果有人给我一个地图键,比如"Element_1"和一个向量大小为2的向量,在键"Element_1"下创建向量可以/安全吗?

是的,我的朋友。如果密钥已经存在,则它会更新相关值,否则它会创建一个具有默认值[即vector<node>()]的密钥的新条目,然后更新指定值[即vector<node>(2)]。

顺便说一下,vector<node>(2)创建大小为2的向量。也就是说,它将通过调用node的默认构造函数来创建两个类型为node的元素。