std::set
- 不重复key
- 默认less排序
STL中的关联容器: std::set
template< class Key, class Compare = std::less, class Allocator = std::allocator > class set;
std::set
是关联容器,含有 Key
类型对象的已排序集。
它的key就是value,value就key,key不能重复,所以不能通过set的迭代器来改变set中元素的值。
用比较函数 比较 (Compare) 进行排序。搜索、移除和插入拥有对数复杂度。 set
通常以红黑树实现。
在每个标准库使用比较 (Compare) 概念的场所,用等价关系确定唯一性。不精确地说,若二个对象 a
与 b
相互间既不比较大于亦不比较小于: !comp(a, b) && !comp(b, a)
,则认为它们等价。
set有一个重要的特性:进行元素的插入或删除之后,原来的迭代器依然有效。 set的底层结构是红黑树。
上面的Compare应该是一个functor(仿函数), 重载了()操作符,用于set内元素的排序。
使用示例:
class lex_compare {
bool operator ()(const int64_t& lhs, cosnt int64_t& rhs) {
stringstream s1, s2;
s1
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?