> 文章列表 > C++编程语言STL之unordered_set介绍

C++编程语言STL之unordered_set介绍

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)