C++map容器

发布时间:2026/5/19 14:17:14

C++map容器 map容器虽然看起来是键值对形式但底层是红黑树实现为了自动按「键」排序保证查询 / 插入效率#includeiostream#includemap#includeset#includealgorithm/* map 容器 关联式容器 python字典 它的元素是 key - value 键值对 key键是唯一的 value值是可以重复的 map中元素是按照key自动排序 使用key访问 */// 使用函数模板templatetypenameT1,typenameT2voiddisplay(conststd::mapT1,T2arr){// 打印 array 数组内的元素for(constautoi:arr)std::couti.first i.second ;std::coutstd::endl;};voidprintmap(conststd::mapstd::string,std::setintm){for(constautoi:m){std::couti.first ;for(constautos:i.second)std::couts ;}std::coutstd::endl;}voidtest1(){std::mapstd::string,ints1{{a3,3},{a2,2},{a1,1},};display(s1);// 自动根据key排序// 插入一个pairs1.insert(std::pairstd::string,int(A1,100));display(s1);// 插入一个pairs1.insert(std::make_pair(B1,200));display(s1);// 不存在-插入 或 存在-修改s1[AA]300;// 插入s1[AA]200;// 修改s1[AA]300;// 在原基础做运算 修改std::couta1计数s1.count(a1)std::endl;std::coutsm计数s1.count(sm)std::endl;autoits1.find(a3);// 迭代器 或者 end()if(it!s1.end())std::cout已找到it-first it-secondstd::endl;elsestd::cout未找到std::endl;s1.clear();// 可以使用清空}voidtest2(){std::mapstd::string,std::setints1{{a3,{1,2,3}},{a2,{22,23,24}},{a1,{44,45,46}},};printmap(s1);s1[a5].insert(80);// 插入printmap(s1);autoits1.find(a1);// 查找 指定元素if(it!s1.end()){it-second.erase(44);// 删除 指定元素}printmap(s1);}intmain(){// test1();test2();}

相关新闻