set的基本定义与使用方法总结

整理一下最近学习C++时候关于set的博客和知识点。

1、set的定义

    1)set是STL中的关联式容器,对应的还有顺序容器 。

           关联式容器指通过键值查找。如set, map

          顺序容器通过位置查找。如vector、deque、list

           两种容器的更多区别可见: https://blog.csdn.net/amf12345/article/details/96819968

     2) map和set的区别:

            map可以同时拥有实值(value)和键值(key)。 初始化为 map

            set元素的键值就是实值,实值就是键值。对应初始化为set 

            参考:https://www.cnblogs.com/omelet/p/6627667.html

      3) map和set的相同点:            

            map和set均可实现根据元素的键值排序,作用机理为红黑树。均没有重复元素。若有N个元素,查找速度为logN。

            对应的非排序为unordered_map 和 unordered_set,作用机理为哈希表。查找速度为常量,与元素数量N无关。

           推荐参考链接 https://blog.csdn.net/yas12345678/article/details/52601454  查看更详细的set讲解。

2、set的使用

  1)初始化等操作

set a;        //K为数据类型,如int, float等
a.count(A);      //查找A是否存在, 存在返回1,不存在返回0
a.find(A);       //如查找到返回迭代器,指向元素,不存在则返回 a.end()
a.insert(A);     //向set中插入元素A
a.erase(A);      //从set中擦出元素A

其中find 与 count区别:

      find()方法返回值是一个迭代器,成功返回迭代器指向要查找的元素,失败返回的迭代器指向end。

      count()方法返回值是一个整数,1表示有这个元素,0表示没有这个元素。

      详见: https://blog.csdn.net/wxn704414736/article/details/79044099

 

  2)其他常见用法

begin()        ,返回set容器的第一个元素

end()         ,返回set容器的最后一个元素

clear()        ,删除set容器中的所有的元素

empty()       ,判断set容器是否为空

max_size()     ,返回set容器可能包含的元素最大个数

size()       ,返回当前set容器中的元素个数

rbegin       ,返回的值和end()相同

rend()       ,返回的值和rbegin()相同

 

你可能感兴趣的:(学习c++)