日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

set中常用的方法

發(fā)布時間:2025/4/16 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 set中常用的方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

set中常用的方法


begin()????    ,返回set容器的第一個元素

end()      ,返回set容器的最后一個元素

clear()??   ??? ?,刪除set容器中的所有的元素

empty()    ,判斷set容器是否為空

max_size()   ,返回set容器可能包含的元素最大個數(shù)

size()      ,返回當(dāng)前set容器中的元素個數(shù)

rbegin     ,返回的值和end()相同

rend()     ,返回的值和rbegin()相同

寫一個程序練一練這幾個簡單操作吧:?

View Code 1 #include <iostream> 2 #include <set> 3 4 using namespace std; 5 6 int main() 7 { 8 set<int> s; 9 s.insert(1); 10 s.insert(2); 11 s.insert(3); 12 s.insert(1); 13 cout<<"set 的 size 值為 :"<<s.size()<<endl; 14 cout<<"set 的 maxsize的值為 :"<<s.max_size()<<endl; 15 cout<<"set 中的第一個元素是 :"<<*s.begin()<<endl; 16 cout<<"set 中的最后一個元素是:"<<*s.end()<<endl; 17 s.clear(); 18 if(s.empty()) 19 { 20 cout<<"set 為空 !!!"<<endl; 21 } 22 cout<<"set 的 size 值為 :"<<s.size()<<endl; 23 cout<<"set 的 maxsize的值為 :"<<s.max_size()<<endl; 24 return 0; 25 }

運行結(jié)果:

小結(jié):插入3之后雖然插入了一個1,但是我們發(fā)現(xiàn)set中最后一個值仍然是3哈,這就是set 。還要注意begin() 和 end()函數(shù)是不檢查set是否為空的,使用前最好使用empty()檢驗一下set是否為空.

?


count()?用來查找set中某個某個鍵值出現(xiàn)的次數(shù)。這個函數(shù)在set并不是很實用,因為一個鍵值在set只可能出現(xiàn)0或1次,這樣就變成了判斷某一鍵值是否在set出現(xiàn)過了。

示例代碼:

View Code 1 #include <iostream> 2 #include <set> 3 4 using namespace std; 5 6 int main() 7 { 8 set<int> s; 9 s.insert(1); 10 s.insert(2); 11 s.insert(3); 12 s.insert(1); 13 cout<<"set 中 1 出現(xiàn)的次數(shù)是 :"<<s.count(1)<<endl; 14 cout<<"set 中 4 出現(xiàn)的次數(shù)是 :"<<s.count(4)<<endl; 15 return 0; 16 }

運行結(jié)果:

?


equal_range()?,返回一對定位器,分別表示第一個大于或等于給定關(guān)鍵值的元素和?第一個大于給定關(guān)鍵值的元素,這個返回值是一個pair類型,如果這一對定位器中哪個返回失敗,就會等于end()的值。具體這個有什么用途我還沒遇到過~~~

示例代碼:

View Code 1 #include <iostream> 2 #include <set> 3 4 using namespace std; 5 6 int main() 7 { 8 set<int> s; 9 set<int>::iterator iter; 10 for(int i = 1 ; i <= 5; ++i) 11 { 12 s.insert(i); 13 } 14 for(iter = s.begin() ; iter != s.end() ; ++iter) 15 { 16 cout<<*iter<<" "; 17 } 18 cout<<endl; 19 pair<set<int>::const_iterator,set<int>::const_iterator> pr; 20 pr = s.equal_range(3); 21 cout<<"第一個大于等于 3 的數(shù)是 :"<<*pr.first<<endl; 22 cout<<"第一個大于 3的數(shù)是 : "<<*pr.second<<endl; 23 return 0; 24 }

運行結(jié)果:

?


erase(iterator)? ,刪除定位器iterator指向的值

erase(first,second),刪除定位器first和second之間的值

erase(key_value),刪除鍵值key_value的值

看看程序吧:

View Code 1 #include <iostream> 2 #include <set> 3 4 using namespace std; 5 6 int main() 7 { 8 set<int> s; 9 set<int>::const_iterator iter; 10 set<int>::iterator first; 11 set<int>::iterator second; 12 for(int i = 1 ; i <= 10 ; ++i) 13 { 14 s.insert(i); 15 } 16 //第一種刪除 17 s.erase(s.begin()); 18 //第二種刪除 19 first = s.begin(); 20 second = s.begin(); 21 second++; 22 second++; 23 s.erase(first,second); 24 //第三種刪除 25 s.erase(8); 26 cout<<"刪除后 set 中元素是 :"; 27 for(iter = s.begin() ; iter != s.end() ; ++iter) 28 { 29 cout<<*iter<<" "; 30 } 31 cout<<endl; 32 return 0; 33 }

運行結(jié)果:

小結(jié):set中的刪除操作是不進行任何的錯誤檢查的,比如定位器的是否合法等等,所以用的時候自己一定要注意。

?


find()??,返回給定值值得定位器,如果沒找到則返回end()。

示例代碼:

View Code 1 #include <iostream> 2 #include <set> 3 4 using namespace std; 5 6 int main() 7 { 8 int a[] = {1,2,3}; 9 set<int> s(a,a+3); 10 set<int>::iterator iter; 11 if((iter = s.find(2)) != s.end()) 12 { 13 cout<<*iter<<endl; 14 } 15 return 0; 16 }

?


insert(key_value);?將key_value插入到set中?,返回值是pair<set<int>::iterator,bool>,bool標(biāo)志著插入是否成功,而iterator代表插入的位置,若key_value已經(jīng)在set中,則iterator表示的key_value在set中的位置。

inset(first,second);將定位器first到second之間的元素插入到set中,返回值是void.

示例代碼:

View Code 1 #include <iostream> 2 #include <set> 3 4 using namespace std; 5 6 int main() 7 { 8 int a[] = {1,2,3}; 9 set<int> s; 10 set<int>::iterator iter; 11 s.insert(a,a+3); 12 for(iter = s.begin() ; iter != s.end() ; ++iter) 13 { 14 cout<<*iter<<" "; 15 } 16 cout<<endl; 17 pair<set<int>::iterator,bool> pr; 18 pr = s.insert(5); 19 if(pr.second) 20 { 21 cout<<*pr.first<<endl; 22 } 23 return 0; 24 }

運行結(jié)果:

?


lower_bound(key_value)?,返回第一個大于等于key_value的定位器

upper_bound(key_value),返回最后一個大于等于key_value的定位器

示例代碼:

View Code 1 #include <iostream> 2 #include <set> 3 4 using namespace std; 5 6 int main() 7 { 8 set<int> s; 9 s.insert(1); 10 s.insert(3); 11 s.insert(4); 12 cout<<*s.lower_bound(2)<<endl; 13 cout<<*s.lower_bound(3)<<endl; 14 cout<<*s.upper_bound(3)<<endl; 15 return 0; 16 }

運行結(jié)果:

總結(jié)

以上是生活随笔為你收集整理的set中常用的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 草草草在线视频 | 欧美一区二区三区久久成人精品 | 8x8x永久免费视频 | 国产成人自拍在线 | 伊人av综合网 | 91性视频 | 免费在线看黄的网站 | 国产有码 | 成人一级大片 | av高潮| 久久最新| 黄色特一级 | 国产无套丰满白嫩对白 | 激情综合图区 | 久久国产人妻一区二区免色戒电影 | 不卡影院| 日本特级黄色 | 色七七视频 | 女色婷婷 | 亚洲天堂中文字幕在线 | 麻豆传媒映画官网 | av亚州 | 特黄aaaaaaaaa毛片免费视频 | 国产精品午夜福利视频234区 | 青青草原综合网 | 一区在线免费观看 | 深夜免费福利 | 亚洲在线观看视频 | 欧美jizzhd精品欧美18 | 欧美精品国产一区二区 | 多啪啪免费视频 | 男女一区| 免费看日韩毛片 | 一区高清 | 三级小说视频 | 日韩视频网 | www.黄色片.com| 性――交――性――乱睡觉 | 久草新 | 精品日韩一区二区 | 久久久久中文字幕亚洲精品 | 日本69视频| 国产精品99久久久久久大便 | 成人精品一区二区三区四区 | 森林影视官网在线观看 | 91av精品| 欧美老熟妇一区二区三区 | 伊人久久网站 | 国产精品麻豆欧美日韩ww | 狠狠伊人| 亚洲欧美自拍视频 | 成人免费看片' | 在线免费观看国产精品 | 欧美国产精品一区 | 国产成人一区二区三区小说 | 免费一级毛片麻豆精品 | 日韩一区二区三区四区五区六区 | 夫妻啪啪呻吟x一88av | av东方在线| www.玖玖玖| 美女爽爽爽 | 香蕉依人| 国产色视频一区二区三区qq号 | 亚洲人成电影一区二区在线 | 亚洲欧美精品在线 | av不卡网站 | 少妇裸体淫交视频免费看高清 | 91成人在线视频 | 波多野结衣av在线免费观看 | 在线观看精品视频 | 色偷偷视频 | 成人无遮挡| 另类一区二区 | 欧美日韩一区不卡 | 国产同性人妖ts口直男 | 亚洲精品91 | 精品成人一区二区三区 | 香蕉影院在线观看 | 日本在线激情 | 国产人人射 | 久久99久久99精品免视看婷婷 | 色版视频 | 国产一区二区三区在线视频观看 | 日韩av在线中文字幕 | 亚洲成人免费在线观看 | 国产精品卡一卡二 | 97综合网| 国产手机视频在线 | 艹少妇视频| 欧美永久精品 | 国产人成无码视频在线观看 | 中文字幕手机在线视频 | 精品欧美一区二区三区在线观看 | 国产精品123区 | 国产交换配乱淫视频免费 | 337p粉嫩大胆色噜噜噜 | 又大又粗欧美黑人aaaaa片 | 免费视频久久久 | 亚洲欧美日韩一区二区三区四区 |