summary of SET/MAP

来源:互联网 发布:电脑摄像头做网络监控 编辑:程序博客网 时间:2024/06/06 06:42

set 一些归纳
set能够在O(logN)添加,删除,检查一个元素是否存在。
O(1)统计不一样的元素的个数,也就是set里元素的个数。
注意set每种元素只存放一次,也就是说s.insert(1)后,再s.insert(1)将不改变set的内容。

写法:
头文件 “set”
”algorithm“

set <int> s;//可以是char,string,pair等等,要求可以比较插入:s.insert(1); //插入元素,复杂度logn,插入的时候自动排序,把最小的放在第一位s.begin()位set<int>::const_iterator it; // stl里的都是用迭代器,是一种加强版的数组指针it=s.begin();可以cout<<*it;s.begin()和s.end()返回2个迭代器,注意end是第一个空的迭代器,其中并没有元素,而begin里是最小的元素。rase(1); 删除一个元素,参数可以是要被删掉的值。也可以是iterator position,或者范围删除(iterator first, iterator last)eg:  s.erase(s.begin());s.erase(s.begin(),s.end());  此时s.end()不会被删除统计个数:s.size();返回set内元素个数,能保证不重复查找:s.find(1);    参数是要被查找的元素,返回值: 如果查找成功返回该元素的迭代器,没有该元素返回s.end()。另一个函数s.count(1);    同find,返回值不同。 查找成功返回1,否则返回0。其他一些会用到的函数:s.clear(); 重置s.upper_bound(x); 返回val大于x的迭代器,如果没有就返回ends.lower_bound(x);  返回val大于等于x的迭代器,如果没有就返回end

MAP:
数据结构和set相同,set是储存key值,而map则是储存pair

 map添加数据:

map

    map多了一个[]的功能。 但是在使用[]的时候如果map中没有key则会自动创建一个新的key值。因而不能在const map中使用[]

map查找:
和set相同,m.find(key) 返回一个typeof(m.begin())类型的迭代器,没找到的话返回m.end()。
map的迭代器,是指向pair的,所以若果it为迭代器,it->first是key值,it->second是value。
“`

0 0
原创粉丝点击