C++ 初始化std :: map或std :: multimap
示例
std::map并且std::multimap既可以通过提供由逗号分隔的键-值对被初始化。键值对可以由提供,也{key,value}可以由显式创建。由于不允许重复的键,并且逗号运算符从右到左执行,因此右侧的对将被左侧相同键的对覆盖。std::make_pair(key,value)std::map
std::multimap < int, std::string > mmp { std::make_pair(2, "stackoverflow"),
std::make_pair(1, "docs-beta"),
std::make_pair(2, "stackexchange") };
//1文档测试版
//2stackoverflow
//2个stackexchange
std::map < int, std::string > mp { std::make_pair(2, "stackoverflow"),
std::make_pair(1, "docs-beta"),
std::make_pair(2, "stackexchange") };
//1文档测试版
//2stackoverflow两者都可以使用迭代器初始化。
//来自std::map或std::multimap迭代器
std::multimap< int , int > mmp{ {1, 2}, {3, 4}, {6, 5}, {8, 9}, {6, 8}, {3, 4},
{6, 7} };
//{1,2},{3,4},{3,4},{6,5},{6,8},{6,7},{8,9}
auto it = mmp.begin();
std::advance(it,3); //将光标移到第一个{6,5}上
std::map< int, int > mp(it, mmp.end()); //{6,5},{8,9}
//从std::pair数组
std::pair< int, int > arr[10];
arr[0] = {1, 3};
arr[1] = {1, 5};
arr[2] = {2, 5};
arr[3] = {0, 1};
std::map< int, int > mp(arr,arr+4); //{0,1},{1,3},{2,5}
//从std::vector的std::pair
std::vector< std::pair<int, int> > v{ {1, 5}, {5, 1}, {3, 6}, {3, 2} };
std::multimap< int, int > mp(v.begin(), v.end());
//{1,5},{3,6},{3,2},{5,1}
热门推荐
2 接春的祝福语简短
10 订婚周年蛋糕祝福语简短
11 大雪生日祝福语大全简短
12 中秋祝福语送朋友简短
13 喜得孙子祝福语简短独特
14 国庆简短幽默祝福语
15 好朋友夫妻祝福语简短
16 38节贺卡简短祝福语
17 新年给妹妹祝福语简短
18 锡婚祝福语简短霸气