STL--set/multiset用法


multiset:

multiset<int>s;

定義正向迭代器與正向遍歷:

multiset<int>::iterator it;
for(it=s.begin();it!=s.end();it++) {
	printf("%d\n",(*it));
}

定義反向迭代器與反向遍歷:

multiset<int>::reverse_iterator rit;
for(rit=s.rbegin();rit!=s.rend();rit++) {
	printf("%d\n",-(*rit));
}

插入一個數x:

s.insert(x)

幾種刪除:

s.erase(v):刪除值為v的所有元素。

s.erase(it):刪除迭代器it處的元素。

也就是說可以用s.erase(s.find(v))來刪除值為v的一個元素。

查找相關:

s.lower_bound(v):返回第一個大於等於v的迭代器指針。

s.upper_bound(v):返回第一個大於v的迭代器指針。

s.find(v):返回一個等於v的迭代器指針。如果不存在值等於v的元素,則返回s.end()

s.equal_range(v):返回值等於v的第一個迭代器和最后一個迭代器,左閉右開,如果不存在則返回兩個s.end()

s.count(v):返回值等於v的元素個數,數據類型為unsigned longlong int,如果不存在返回0,時間復雜度未知,如果重復的個數過多可能會慢。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM