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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

【PAT笔记】C++标准模板库STL(二)——set的用法和示例

發布時間:2025/3/20 c/c++ 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【PAT笔记】C++标准模板库STL(二)——set的用法和示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2. set的常見用法詳解

set翻譯為集合,是一個內部自動有序不含重復的容器。如果要使用set,需要添加頭文件#include <set>?另外還要加上using namespace std;

PAT中的相關題目有(代碼見下方):

1063 Set Similarity (25 分)

2.1 set的定義

與vector類似,set的定義為set<typename> name,例如:set<int> name;

2.2 set容器內元素的訪問

set只能通過迭代器(iterator)訪問,迭代器格式與vector格式一致,為set<typename>::iterator it=st.begin(); 支持*it訪問。

2.3 set常用函數

(1)insert():insert(x),將x插入set容器中,并自動遞增去重。示例:st.insert(1);

(2)find():find(value)返回set中對應值為value的迭代器。示例:set<int>::iterator it=st.find(2);在set找到2返回迭代器。

(3)erase():刪除set中單個元素或者區間元素。示例:st.erase(2)或者st.erase(it,st.end());刪除元素2到set末尾的元素。

(4)size():size()用來獲得set元素的個數。示例:st.size();。

(5)clear():用來清空set中的所有元素。示例:st.clear()。

現在附上PAT中關于set題目的代碼:?

#include <stdio.h> #include <set> #include <iostream> using namespace std; const int N=51; set<int> st[N];void compare(int a,int b){int totalNum=st[b].size(),sameNum=0; //totalNum為新的元素 for(set<int>::iterator it=st[a].begin();it!=st[a].end();it++){ //it和st[a].end()不能用<或>if(st[b].find(*it)!=st[b].end()) sameNum++; //存在這個數,注意判斷方法 else totalNum++; }printf("%.1f%%\n",sameNum*100.0/totalNum); //100.0要乘在分子上,不能乘在分母上 }int main(){int n,m,k,x,y,z;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&m);for(int j=0;j<m;j++){scanf("%d",&k);st[i].insert(k);}}scanf("%d",&x);for(int i=0;i<x;i++){scanf("%d%d",&y,&z);compare(y,z);}return 0;

?

總結

以上是生活随笔為你收集整理的【PAT笔记】C++标准模板库STL(二)——set的用法和示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。