您当前的位置: 首页 >  c++
  • 0浏览

    0关注

    1477博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C++ std::set<,> operator怎么用

软件工程小施同学 发布时间:2021-08-31 11:27:39 ,浏览量:0

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             
关注
打赏
1665320866
查看更多评论
1.7678s