无意间翻到了17年11月准备NOIP时整理的set用法,现把它放到csdn上来
小结set
的英文意思是“集合”, 集合都不陌生吧,集合的特点有唯一性,即:每一个元素只有一个,所以set
可以用来“去重”操作,set
还有默认的排序。
setQ
insert(x)
set<int>::iterator it;
for(it = Q.begin(); it != Q.end(); it++)
cout<<*it<<endl;
erase(x)
clear()
empty()
size()
Q.lower_bound(x)
lower_bound()
upper_bound
内部自带 lower_bound()
upper_bound
(这俩返回的是迭代器)
lower_bound(key_value)
,返回第一个大于等于key_value
的定位器
upper_bound(key_value)
,返回最后一个大于等于key_value
的定位器
erase
的三种用法erase(iterator)
,删除定位器iterator
指向的值
erase(first,second)
,删除定位器first
和second
之间的值
erase(key_value)
,删除键值key_value
的值
int main() {
int n = get_num();
for (int i = 1; i <= n; i++) {
Q.insert(get_num());
}
set<int>::iterator p_s;
for (p_s = Q.begin(); p_s != Q.end(); p_s++) {
cout << *p_s << " ";
}
cout << endl;
p_s = Q.lower_bound(1);
Q.erase(p_s);
for (p_s = Q.begin(); p_s != Q.end(); p_s++) {
cout << *p_s << " ";
}
return 0;
}