C++ set 用法小結

寫在前面

無意間翻到了17年11月準備NOIP時整理的set用法,現把它放到csdn上來


<set> 小結

set的英文意思是“集合”, 集合都不陌生吧,集合的特點有唯一性,即:每一個元素只有一個,所以set可以用來“去重”操作,set還有默認的排序。

  1. 頭文件——<set>
  2. 定義——set<int>Q
  3. 輸入(插入)——insert(x)
  4. 有序輸出:
 set<int>::iterator it;

 for(it = Q.begin(); it != Q.end(); it++)

 cout<<*it<<endl;
  1. 刪除制定元素——erase(x)
  2. 清空——clear()
  3. 判空——empty()
  4. 大小——size()
  5. 二分查找——Q.lower_bound(x)

set 的 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),刪除定位器firstsecond之間的值

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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章