打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
map以及使用举例--C++基础

关联式容器:
map的特性就是所有元素都会根据元素的key被自动排序,map的所有元素是同时拥有key和value。map不允许两个元素有相同的key。而当map同时拥有key和value的时候,它的迭代器可以修改其中的内容吗?key不可以,因为key是用来排列数据的,但是value的值就可以改变了。
当我做到set的测试时候,我想着能不能传一个结构体进来,进行set操作,看看会发生什么,没想到连编译都通不过,实在是想多了,但是map好像可以很简单的实现这个想法欸!
示例代码:

#include"Test.h"

#include<map>
#include<string>
#include<algorithm>//为了使用find、sort等方法
void main()
{
setlocale(LC_ALL, "chs");//识别中文
map<string, int> v1;
v1[string("Janney")] = 9;
v1[string("Fanney")] = 3;
v1[string("Fgnney")] = 6;
v1[string("Tanney")] = 7;
v1[string("Banney")] = 8;
v1[string("Benney")] = 1;
v1[string("Bbnney")] = 0;
v1[string("Bbnney")] = 90;//key值相同时,相当于修改了value
pair<string, int> v5("KookNut", 39);
v1.insert(v5);
for (map<string, int>::iterator v2 = v1.begin();
v2 != v1.end();
v2++)
{
cout << v2->first << endl;
cout << v2->second << endl;
}
int Number = v1[string("KookNut")];
v1.erase(string("Tanney"));
map<string, int>::iterator v3 = v1.find(string("Fgnney"));
v3->second = 99;//修改value
//v3->first = string("Fddd");
getchar();
}

自动按照key值排序

key值不可以修改


自然的,有multiset就有multimap,multimap的特性以及用法与map完全相同,唯一的区别在于它允许key重复。
简单修改:

void main()
{
setlocale(LC_ALL, "chs");//识别中文
multimap<string, int> v1;


v1.insert(make_pair(("Fanney"),3));
v1.insert(make_pair(("Fgnney"), 6));
v1.insert(make_pair(("Tanney"), 7));
v1.insert(make_pair(("Banney"), 8));
v1.insert(make_pair(("Benney"), 1));
v1.insert(make_pair(("Bbnney"), 0));
v1.insert(make_pair(("Bbnney"), 90));

pair<string, int> v5("KookNut", 39);
v1.insert(v5);
for (map<string, int>::iterator v2 = v1.begin();
v2 != v1.end();
v2++)
{
cout << v2->first << endl;
cout << v2->second << endl;
}
v1.erase(string("Tanney"));
map<string, int>::iterator v3 = v1.find(string("Fgnney"));
v3->second = 99;//修改value
getchar();
}


“有志者,事竟成,破釜沉舟,百二秦关终属楚;
苦心人,天不负,卧薪尝胆,三千越甲可吞吴。”
参考书籍:
《STL源码剖析》

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
STL中的常用的vector,map,set,Sort用法 - c/c++程序设计 - j...
(C++)STL中map按照vaule来排序
STL map详细用法
关于map的使用 c
C++Primer 学习笔记之关联容器
map 自定义排序规则(通过定义函数对象)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服