C++之哈希表(STL容器)

本文介绍了C++ STL中的unordered_set容器,它是实现哈希表的数据结构,用于快速查找。哈希表通过关键码值映射到特定位置,提高查找效率。unordered_set提供了如插入、删除、查找等基本操作,并给出了相关代码示例,包括定义、赋值、检查空状态、获取元素数量、插入和删除元素等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在刷算法题的时候,总是会遇到哈希表结构,而C++的STL是自带有哈希结构的。

注:STL为C++标准库,一般有三个常用的:HP STL;P.j.Plauger STL;SGL STL。

    其中HP STL是第一个实现的版本,也是大多数STL的蓝本。这三个里面,HP STL和SGL STL是开源的。SGL STL被Linux的C++编译器GCC采用,可读性较强。

哈希表定义:哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。

在C++的STL中由unordered_set实现。

unordered_set:

    //定义
    unordered_set<int> c1;
    
    //operator=
    unordered_set<int> c2;
    c2 = c1;

    //判断是否为空
    c1.empty();
    
    //获取元素个数 size()
    c1.size();
    
    //获取最大存储量 max_size()
    c1.max_size();

    //返回头迭代器 begin()
    unordered_set<int>::iterator ite_begin = c1.begin();
    
    //返回尾迭代器 end()
    unordered_set<int>::iterator ite_end = c1.end();

    //查找函数 find() 通过给定主键查找元素
    unordered_set<int>::iterator find_iter = c1.find(1);
    
    //value出现的次数 count() 返回匹配给定主键的元素的个数
    c1.count(1);

    //插入函数 emplace()
    c1.emplace(1);
    
    //插入函数 emplace_hint() 使用迭代器
    c1.emplace_hint(ite_begin, 1);
    
    //插入函数 insert()
    c1.insert(1);
    
    //删除 erase()
    c1.erase(1);//1.迭代器 value 区域
    
    //清空 clear()
    c1.clear();
    
    //交换 swap()
    c1.swap(c2);

代码摘抄自link

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小小姝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值