/*直接构造并插入元素*/
std::unordered_multimap<int,std::string>::iterator itr1 = unordermultimapTest.emplace(1,"a");
std::cout <<"emplace key is "<<itr1->first<<" emplace value is "<<itr1->second<<std::endl;/*直接构造并插入元素*/
std::pair<int,std::string>pair1(1,"b");
std::unordered_multimap<int,std::string>::iterator itr2 = unordermultimapTest.emplace(std::move(pair1));
std::cout <<"itr2 key is "<<itr2->first<<" itr2 value is "<<itr2->second<<std::endl;/*直接构造并在指定位置插入元素*/
std::unordered_multimap<int,std::string>::iterator itr3 = unordermultimapTest.emplace_hint(++unordermultimapTest.begin(),8,"b");
std::cout <<"itr3 key is "<<itr1->first<<" itr3 value is "<<itr1->second<<std::endl;/*删除单个元素*/
std::unordered_multimap<int,std::string>::iterator itr4 = unordermultimapTest.erase(unordermultimapTest.begin());
std::cout <<"itr4 key is "<<itr4->first<<" itr4 value is "<<itr2->second<<std::endl;/*删除指定范围的元素*/
std::unordered_multimap<int,std::string>::iterator itr5 = unordermultimapTest.erase(unordermultimapTest.begin(),++unordermultimapTest.begin());
std::cout <<"itr5 key is "<<itr5->first<<" itr5 value is "<<itr5->second<<std::endl;/*根据键值删除元素*/int iCount = unordermultimapTest.erase(1);
std::cout <<"erace element count is "<<iCount<<std::endl;/*清空元素*/
unordermultimapTest.clear();/*插入元素,返回键值对*/
std::unordered_multimap<int,std::string>::iterator itr6 = unordermultimapTest.insert({1,"hello"});
std::cout <<"itr6 key is "<<itr6->first<<" itr6 value is "<<itr6->second<<std::endl;/*使用移动语句插入元素,返回键值对*/
std::pair<int,std::string>pair3(2,"world");
std::unordered_multimap<int,std::string>::iterator itr7 = unordermultimapTest.insert(std::move(pair3));
std::cout <<"itr7 key is "<<itr7->first<<" itr7 value is "<<itr7->second<<std::endl;/*插入元素,返回迭代器*/
std::unordered_multimap<int,std::string>::iterator itr8 = unordermultimapTest.insert(unordermultimapTest.begin(),{3,"three"});
std::cout <<"itr8 key is "<< itr8->first <<",itr8 value is "<<itr8->second<<std::endl;/*使用移动语句插入元素,返回迭代器*/
std::pair<int,std::string>pair7(4,"four");
std::unordered_multimap<int,std::string>::iterator itr9 = unordermultimapTest.insert(unordermultimapTest.begin(),std::move(pair7));
std::cout <<"itr9 key is "<< itr9->first <<",itr9 value is "<<itr9->second<<std::endl;/*初始化列表插入,无返回值*/
unordermultimapTest.insert({{5,"one"},{7,"two"},{6,"three"}});/*使用迭代器指定范围插入元素,无返回值*/
std::unordered_multimap<int,std::string> unordermultimap8{{3,"three"},{4,"four"}};
unordermultimapTest.insert(unordermultimap8.begin(),unordermultimap8.end());
元素查找
函数
返回值
功能
count()
std::size_t
返回给定键对应元素的数量
find()
迭代器
查找指定键对应元素的位置,未找到则返回end()
equal_range()
键值对
查找与指定键匹配的范围
/*判断某个键对应值的数量*/
std::cout<<unordermultimapTest.count(3)<<std::endl;/*查找指定键的元素所在的位置*/
std::unordered_multimap<int,std::string>::iterator itr10 = unordermultimapTest.find(4);
std::cout<<"find key is "<<itr10->first<<",find value is "<<itr10->second<<std::endl;/*返回给定键的范围*/
std::pair<std::unordered_map<int,std::string>::iterator, \
std::unordered_map<int,std::string>::iterator> pair4 = unordermultimapTest.equal_range(4);if(unordermultimapTest.end()!= pair4.first && unordermultimapTest.end()!= pair4.second){for(; pair4.first != pair4.second; pair4.first++){
std::cout<<"key is "<<pair4.first->first<<",value is "<<pair4.first->second<<std::endl;}}