STL——set与hash_set

在STL中,set是以红黑树(RB-tree)作为底层数据结构的,hash_set是以Hash table(哈希表)作为底层数据结构的。set可以在时间复杂度为O(logN)情况下插入、删除和查找数据。hash_set操作的时间复杂度则比较复杂,这取决于哈希函数和哈希表的负载情况。set和hash_set的常用函数如下所示:


1.set中的元素会自动排序,因此插入数据时,如果给定的位置不正确(不符合排序的顺序),会重新找个正确的位置并返回该位置

2.set的迭代器之间不能执行加减运算,比如set.end()-set.begin()会报编译错误,想知道指向某一元素的迭代器距离set容器首元素有多远可以用std::distance(it_first,it_last)函数,它确定两个迭代器之间间隔多少个元素。

3.insert和erase函数中的位置参数都是用迭代器指向的


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值