当前位置:网站首页>Set container

Set container

2022-07-06 13:21:00 Rivers overflow

#include<set>
using std::set;

set Containers that can be automatically ordered internally and do not contain duplicate elements

1.set The definition of

set<typename> name;

Precautions are the same vector

2.set Access to elements within a container

differ vector,set Inner elements can only be accessed through iterators , And it does not support the behavior of iterators adding integers , Such as (it+i)i Writing as an integer is not allowed

The traversal method can only be

for(set<int>::iterator it=si.begin();it!=si.end();it++)
cout<<*it<<endl;

Be careful : Iterator not supported it<si.end() How to write it

3.set Common function analysis

(1)insert()

insert(x) take x Insert set In the container , And automatically incremental sorting and de duplication , The time complexity is O(logn),n by set The number of elements in

(2)find()

find(value) The return corresponding value is value The iterator , The time complexity is O(logn),n by set The number of elements in

set<int>::iterator it=set.find(3);// The return corresponding value is 3 The iterator 

(3)erase()

①si.erase(it),it Iterator for the element to be deleted . The time complexity is O(1), Can be combined with find() Use

si.erase(si.find(200));// The deletion value is 200 The elements of ,erase by O(1),find by O(logn)

②si.erase(value),value For a value . Delete value value The elements of , Time complexity O(logn)

si.erase(200);// The deletion value is 200 The elements of , Time complexity O(logn)

③si.erase(first,last), Delete [first,last) Elements of left closed and right open intervals , Time complexity O(last-first)

set<int>::iterator it=si.find(30);
si.erase(it,si.end());

(4)size()

Time complexity O(1)

(5)clear()

Time complexity O(n)

4. Common use

Automatic de duplication and ascending sort

If you need to use the case without weight removal , Use multiset

If you need to use the case of no sorting , Use unordered_set( Much faster than set)

原网站

版权声明
本文为[Rivers overflow]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202131443056321.html