2021-4-1 C++ STL之map

Map

Map的特点是增加和删除节点对迭代器的影响很小。对于迭代器来说,可以修改实值,而不能修改key
map<T1,T2> m;		//T1是key值,T2是value值,初始的时候 m 是空映射

插入方式:键值对的形式插入

  1. 采用创建pair的形式插入
  2. 采用make_pair的形式进行插入
  3. 采用大括号的形式进行插入
map<string, int> dict;  // {}
dict.insert(pair<string, int>("Tom", 1)); // 插入键值对的形式
dict.insert(pair<string, int>("Jone", 2)); 
 
dict.insert(pair<string, string>("string", "字符串"));
dict.insert(make_pair("apple", "苹果"));//模板函数make_pair,实际调的是pair
dict.insert({ "left", "左边" });
dict.insert({ "left", "剩余" });//插入不进去了,因为key值已经有了

访问查找

访问的时候直接通过[]就可以完成

dict[key];		//得到的是key的值

dict['test']=1;	//如果key的值,之前没有定义,那么这里讲插入一个新的key值,并赋值一个默认的参数
dict['test']=3	//当然也可以通过这种方式修改key对应的value值
count()函数和find()函数
count函数,返回的是被查找元素的个数。如果有,返回1;否则,返回0。主要用于查找map中是否存在这样的key值
find函数,返回的是被查找元素的位置,没有则返回map.end()

遍历

for (map<string, int>::iterator it = dict.begin(); it != dict.end(); ++it) {
	cout <<"key is "<< it->first <<" value is " << it->second << endl;
	}

方法总结

插入:
insert(三种方式);
//直接通过:对象[key]=val;的方式修改
count(key);		//因为map中不存在相同的key值,所以结果只能是0,1
find(key);		//通过迭代器的方式,查找key的位置,返回也是一个迭代器,如果找不到就是end()
erase(key);		//删除关键字值
size();			//获取映射对数
clear();
上一篇:CCF201912-2垃圾站选址


下一篇:map操作细节