其他分享
首页 > 其他分享> > c – 直接将std :: map插入std :: vector

c – 直接将std :: map插入std :: vector

作者:互联网

对不起,如果问题非常简单.

我有一张地图矢量:

typedef map<char, int> edges;
typedef vector<edges> nodes;

nodes n;

现在让我们说我想推动玩具优势.我尝试了不同的东西,我的工作是什么

edges e;        //declare an edge
e['c'] = 1;     //initialize it
n.push_back(e);  //push it to the vector

如何在不必声明变量并初始化它的情况下,只需按下边(‘c’和2)的值对?

就像是:

n.push_back(edges('c',2));

但编译器给出了错误

error: no matching function for call to ‘std::map<char, int>::map(char, int)’

解决方法:

您可以列出初始化:

nodes vec {
    { {'a', 12}, {'b', 32} },
    { {'c', 77} },
};

vec.push_back(
        { {'d', 88}, {'e', 99} }
        );

标签:c,c11,vector,stdvector,stdmap
来源: https://codeday.me/bug/20190727/1549041.html