亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++ set的使用方法詳解

2020-05-23 13:46:23
字體:
來源:轉載
供稿:網友

C++ set的使用方法詳解

set也是STL中比較常見的容器。set集合容器實現了紅黑樹的平衡二叉檢索樹的數據結構,它會自動調整二叉樹的排列,把元素放到適當的位置。set容器所包含的元素的值是唯一的,集合中的元素按一定的順序排列。

我們構造set集合的目的是為了快速的檢索,不可直接去修改鍵值。

set的一些常見操作:

  1. begin() 返回指向第一個元素的迭代器
  2. clear() 清除所有元素
  3. count() 返回某個值元素的個數
  4. empty() 如果集合為空,返回true(真)
  5. end() 返回指向最后一個元素之后的迭代器,不是最后一個元素
  6. erase() 刪除集合中的元素
  7. find() 返回一個指向被查找到元素的迭代器
  8. insert() 在集合中插入元素
  9. max_size() 返回集合能容納的元素的最大限值
  10. size() 集合中元素的數目
  11. swap() 交換兩個集合變量

其實set的大部分操作是與vector類似的,不過set不支持隨機訪問,必須要使用迭代器去訪問。由于set放入一個元素就會調整這個元素的位置,把它放到合適的位置,所以set中只有一個insert插入操作。

對于集合來說,我們一般有并集、交集、差集、補集這幾種操作,所以在set的操作中我們也有類似的集合操作,它們都在#include<algorithm>的頭文件下:

std::set_intersection() :這個函數是求兩個集合的交集。 std::set_union() :求兩個集合的并集 std::set_difference():差集 std::set_symmetric_difference():得到的結果是 第一個迭代器相對于第二個的差集 并上第二個相對于第一個的差集 

學校OJ上有一個題可以來進行這幾個操作,下面是學校OJ的題:

Description

集合的運算就是用給定的集合去指定新的集合。設A和B是集合,則它們的并差交補集分別定義如下:A∪B={x|x∈A∨x∈B}A∩B={x|x∈A∧x∈B}A-B={x|x∈A∧x不屬于 B}SA ={x|x∈(A∪B)∧x 不屬于A}SB ={x|x∈(A∪B)∧x 不屬于B}

Input

第一行輸入一個正整數T,表示總共有T組測試數據。(T<=200)然后下面有2T行,每一行都有n+1個數字,其中第一個數字是n(0<=n<=100),表示該行后面還有n個數字輸入。

Output

對于每組測試數據,首先輸出測試數據序號,”Case #.NO”,接下來輸出共7行,每行都是一個集合,前2行分別輸出集合A、B,接下5行來分別輸出集合A、B的并(A u B)、交(A n B)、差(A – B)、補。集合中的元素用“{}”擴起來,且元素之間用“, ”隔開。

Sample Input

14 1 2 3 10

Sample Output

Case# 1:A = {1, 2, 3}B = {}A u B = {1, 2, 3}A n B = {}A - B = {1, 2, 3}SA = {}SB = {1, 2, 3}

我的代碼如下:

#include<iostream> #include<set> #include<algorithm> #include<vector> using namespace std; void print(set<int> a) {   if(a.begin() == a.end())       cout << "}" << endl;   for(set<int>::iterator it = a.begin();it!=a.end();it++)   {     if(++it==a.end())     {       it--;       cout << *it << "}/n";     }     else     {       it--;       cout << *it << ", ";     }   } } int main() {   int T, cou = 0;   set<int> a, b, c;   cin >> T;   while(T--)   {     cou++;     a.clear(), b.clear(), c.clear();     int n;     cin >> n;     for(int i=0;i<n;i++)     {       int x;       cin >> x;       a.insert(x);     }     cin >> n;     for(int i=0;i<n;i++)     {       int x;       cin >> x;       b.insert(x);     }     cout << "Case# " << cou << ":" << endl;     cout << "A = {";     print(a);     cout << "B = {";     print(b);     set_union(a.begin(),a.end(),b.begin(),b.end(),inserter(c,c.begin()));     cout << "A u B = {";     print(c);     c.clear();     set_intersection(a.begin(),a.end(),b.begin(),b.end(),inserter(c,c.begin()));     cout << "A n B = {";     print(c);     c.clear();     set_difference(a.begin(),a.end(),b.begin(),b.end(),inserter(c,c.begin()));     cout << "A - B = {";     print(c);     c.clear();     set_difference(b.begin(),b.end(),a.begin(),a.end(),inserter(c,c.begin()));     cout << "SA = {";     print(c);     c.clear();     set_difference(a.begin(),a.end(),b.begin(),b.end(),inserter(c,c.begin()));     cout << "SB = {";     print(c);   }    return 0; } 

inserter是一個迭代器適配器中的插入迭代器。原理:其內部調用insert()

功能:在容器的指定位置插入元素

限制:只有提供了inset()成員函數的容器中,inserter才能派上用場. 所有STL容器都提供了inset()函數.

適用:所有STL容器

如有疑問請留言或到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲福利在线观看| 国产成人精品在线视频| 欧美性xxxx| 亚洲人成免费电影| 91久久国产精品| 久久久之久亚州精品露出| 亚洲久久久久久久久久| 国产福利精品视频| 91精品国产乱码久久久久久蜜臀| 在线a欧美视频| 欧美日韩亚洲系列| 欧美精品生活片| 日韩欧美国产网站| 亚洲精品suv精品一区二区| 一区二区三区久久精品| 国产91久久婷婷一区二区| 亚洲精品美女久久久久| 欧美日韩一区二区三区在线免费观看| 欧美成人精品在线播放| 亚洲一区二区三区xxx视频| 精品国产成人av| 欧美国产精品人人做人人爱| 性欧美亚洲xxxx乳在线观看| 91久久久久久久久久久久久| 久久国产精品久久久久久久久久| 26uuu另类亚洲欧美日本老年| 亚洲国产欧美精品| www.亚洲成人| 欧美亚洲国产日韩2020| 国产精品精品视频一区二区三区| 国自产精品手机在线观看视频| 97精品一区二区三区| 中文字幕国产精品久久| 日本精品中文字幕| 高清一区二区三区四区五区| 国产精品久久久999| 在线看日韩av| 亚洲天堂免费视频| 亚洲精品电影久久久| 久久精品国产69国产精品亚洲| 国产精品夜色7777狼人| 国产91ⅴ在线精品免费观看| 久久青草福利网站| 亚洲永久在线观看| 日韩电视剧在线观看免费网站| 中文字幕日韩专区| 久久久免费观看| 欧美三级xxx| 亚洲**2019国产| 欧美中文字幕在线| 亚洲精品第一国产综合精品| 欧美一区三区三区高中清蜜桃| 日韩欧美中文字幕在线观看| 欧美二区在线播放| 日韩高清欧美高清| 不卡中文字幕av| 亚洲v日韩v综合v精品v| 不卡中文字幕av| 午夜精品久久久久久久99黑人| 欧美日韩不卡合集视频| 国产精品久久久久久网站| 亚洲欧美日韩精品| 精品成人国产在线观看男人呻吟| 91高清视频在线免费观看| 这里只有精品久久| 国产精品偷伦视频免费观看国产| 久久精品国产成人精品| 亚洲人在线视频| 亚洲精品免费av| 91av在线影院| 欧美精品第一页在线播放| 久久精品国产一区二区电影| 2019国产精品自在线拍国产不卡| 中文日韩在线视频| 中文字幕亚洲无线码在线一区| 国产成人激情小视频| 色噜噜国产精品视频一区二区| 亚洲人高潮女人毛茸茸| 国产精品专区第二| 日韩av网站在线| 亚洲精品视频网上网址在线观看| 2021久久精品国产99国产精品| 欧美黑人巨大精品一区二区| 欧美成年人视频网站欧美| 日本午夜精品理论片a级appf发布| 日韩精品在线第一页| 日韩中文在线中文网在线观看| 亚洲aa在线观看| 欧美日韩美女视频| 日本成人黄色片| 51视频国产精品一区二区| 日韩av在线影视| 成人免费视频网| 日韩av综合中文字幕| 亚洲在线视频观看| 中文字幕日韩高清| 国产精品吹潮在线观看| 国产999精品久久久影片官网| 亚洲品质视频自拍网| 久久夜精品香蕉| 国产亚洲精品久久久优势| 自拍视频国产精品| 国产欧美日韩精品专区| 日本午夜人人精品| 国产精品一区二区三区久久久| 日日骚av一区| 精品无人区太爽高潮在线播放| 亚洲视频在线观看| 亚洲精品网站在线播放gif| 日韩在线视频线视频免费网站| 免费不卡在线观看av| 久久久视频在线| 亚洲精品久久久久久久久久久久| 综合网日日天干夜夜久久| 日韩av免费在线播放| 中文字幕视频在线免费欧美日韩综合在线看| 国产精品欧美一区二区三区奶水| 欧美日韩国产丝袜另类| 日韩在线中文视频| 久久久久久久久中文字幕| 91午夜在线播放| 亚洲美女性生活视频| 亚洲国产精品嫩草影院久久| 国产情人节一区| 96sao精品视频在线观看| 岛国视频午夜一区免费在线观看| 国产噜噜噜噜噜久久久久久久久| 91久久精品一区| 久久国产精品网站| 日本电影亚洲天堂| 久久精品视频免费播放| 成人国产精品一区二区| 国产狼人综合免费视频| 久久九九免费视频| 国产成人久久精品| 亚洲精品国精品久久99热| 日本一区二区在线免费播放| 国产精品一区专区欧美日韩| 国产精品久久久久久中文字| 日韩av在线免费看| 91av在线影院| 日韩中文字幕国产| 日韩精品中文字幕在线播放| 国产精品成人va在线观看| 麻豆精品精华液| 一个色综合导航| 欧美xxxx综合视频| 亚洲人成毛片在线播放| 亚洲白拍色综合图区| 亚洲人成亚洲人成在线观看| 久久综合久久88| 国产福利视频一区| 欧美国产第二页| 午夜精品99久久免费| 蜜月aⅴ免费一区二区三区| 国产女人18毛片水18精品| 亚洲女人天堂av| 91免费欧美精品| 中文字幕日韩免费视频| 亚洲美女黄色片| 日韩av一区在线| 日本久久久a级免费| 日韩在线免费高清视频| 日本精品一区二区三区在线|