C++编程语言STL之unordered_set介绍
本文主要介绍 C++ 编程语言的 STL(Standard Template Library) 中 unordered_set 的相关知识,同时通过示例代码介绍 unordered_set 的常见用法。
1 概述
C++标准库提供了四个无序关联容器(unordered associated container),这些容器不是使用比较运算符、而是使用一个哈希函数(hash function)和关键字类型的==运算符来组织元素。
在关键字类型的元素没有明显的“序关系”的情况下,无序容器是非常有用的。在某些应用中,维护元素的序的代价非常高昂,此时无序容器也很有用。
unordered_set 就是 C++标准库提供的四个无序关联容器之一。
unordered_set 的几个特性:
-
不对内部存储的数据进行排序;
-
不以键值对(key-value)的形式存储数据,而是直接存储数据的值;
-
容器内部存储的各个元素的值都不相等,且元素的值不能被修改。
2 常见用法
2.1 构造unordered_set
通常可以采用下面的方式构造 unordered_set(以元素为 char 类型为例):
unordered_set<char> unoSet;
2.2 插入元素
通常采用下列方法执行插入元素操作:
char chA = 'a';
unoSet.insert(chA);
2.3 查看元素出现次数
通常可采用下列方法查看某元素在 unordered_set 中的出现次数(返回结果为 0 或 1):
unoSet.count(chA)