set
SET概念
主要特点
- 唯一元素:
set是一种不允许重复元素的集合,每个元素在集合中只能出现一次。 - 有序:
set中的元素是按照特定的顺序自动排列的,默认情况下是升序排列。 - 底层实现:
set通常使用红黑树或其他平衡树结构作为底层实现。 - 查找效率:由于底层实现为平衡树,
set提供对元素的对数时间复杂度的查找、插入和删除操作。
基本用法
1. 创建和初始化
1 | |
2. 元素操作
1 | |
3. 迭代器的使用
1 | |
常用成员函数
元素操作:
insert(const T& value):插入一个元素,如果元素已存在,则不会重复插入。erase(const T& value):删除指定的元素。find(const T& value):查找指定的元素,返回指向该元素的迭代器,如果未找到则返回end()。
状态检查:
empty():检查set是否为空,返回布尔值。size():返回set中元素的数量。
迭代器:
begin():返回指向第一个元素的迭代器。end():返回指向set尾部之后的位置的迭代器。
其他操作:
count(const T& value):返回集合中与value匹配的元素的数量(set中要么是 0,要么是 1)。lower_bound(const T& value):返回指向第一个不小于value的元素的迭代器。upper_bound(const T& value):返回指向第一个大于value的元素的迭代器。equal_range(const T& value):返回一个pair,包含value的lower_bound和upper_bound迭代器。
MAP概念
类似于py里面的字典
主要特点
- 键值对存储:
map存储的是键值对,每个元素由一个键和一个对应的值组成。 - 唯一键:
map中的每个键都是唯一的,不允许重复。如果插入一个已有键的元素,会更新该键的值。 - 有序:
map中的键是按照特定的顺序自动排列的,默认情况下是升序排列。 - 底层实现:
map通常使用红黑树或其他平衡树结构作为底层实现。 - 查找效率:由于底层实现为平衡树,
map提供对元素的对数时间复杂度的查找、插入和删除操作。
基本用法
1. 创建和初始化
#include <map>
#include <iostream>
using namespace std;
int main() {
map<int, string> m; // 创建一个空的 map
return 0;
}
set
http://pikachuxpf.github.io/posts/e61425dc/