c++中有关哈希表的STL操作

本文介绍了红黑树和无序集合(unordered_set)及映射(unordered_map)的基础知识。红黑树是一种自平衡二叉查找树,插入、删除和查找操作的时间复杂度为O(logn),适用于有序数据操作。而unordered_set和unordered_map基于哈希表实现,提供O(1)的平均时间复杂度,适合快速查找和插入但不保证顺序。文中列举了它们常用的操作函数,并提及了迭代器的使用方法。

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

  1. set
    基于红黑树实现,可以进行去重和排序操作。O(logn)。
    一些常用的函数有:

    s.insert(x);
    s.erase(x);
    s.size();
    s.find(x);
    s.count(x); //因为有去重性质,count()统计出现的次数要么是0,要么是1,可以替代find()
    s.empty();

  2. unordered_set
    O(1)。
    一些常用的函数:

    s.insert();
    s.erase();
    s.find();
    s.count();
    s.empty();

  3. map<string, int>
    一种键值对的映射关系,内部存储结构是pair<first, second> 。[first-key,second-value]。前面的元素字典序排列
    一些常见操作函数:

    m.size();
    m.insert(pair);
    m.find(key);
    m.count(key);
    m.erase(key);
    m[key] = value;

  4. unordered_map<key, value>
    无序版的map。
    一些常用的操作函数:

    m.size();
    m.insert(pair);
    m.find(key);
    m.count(key);
    m.erase(key);
    m[key] = value;

迭代器

for (auto it = m.begin(); it != m.end(); it ++ )
{
	cout << it->first << " " << it->second << endl;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值