map、set、unordered_map、unordered_set

基本概念

map是(关键字,值)对的集合,例如,可以将一个人的名字作为关键字,将其电话号码作为值,我们可以将这个人的名字作为下标获取此人的电话号码。
set是(关键字)的简单集合,当只是想知道一个值是否存在时,set是最有用的。例如,一个企业可以定义一个名为bad_checks的set来保存那些曾经开过空头支票的人的名字。在接受一张支票前,可以查询bad_checks来查询顾客的名字是否在其中。
unordered_map和unordered_set外部实现与map和set相同,但是内部实现不同,set和map内部实现是基于RB-Tree,而unordered_set和unordered_map内部实现是基于哈希表(hashtable)。

操作

map、unordered_map的元素是pair, (map.insert(pair))

pair<T1,T2> p; 定义一个pair
pair<T1,T2> p(v1,v2); 定义一个pair,并初始化
make_pair(v1,v2);pair的类型从v1和v2的类型推断出来
p.first ;返回p的关键字v1
p.second;返回p的值v2

Leetcode练习:我的Leecode博客中的方法2

set、unordered_set常用方法

 unordered_set<int/char/...> set;
 set.find(x);定位到x的位置
 set.insert(x);插入x
 set.count(x);若set中存在x则返回1,不存在则返回0
 打印set
   for ( unordered_set<int/char/...>::iterator iter = set.begin(); iter !=set.end();iter++)
	{
		cout << *iter << endl;
	}

Leetcode练习:我的Leetcode博客

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务