OutputIterator set_differe">

多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > STL algorithm算法set_difference,set_intersection(53)

STL algorithm算法set_difference,set_intersection(53)

來源:程序員人生   發布時間:2014-10-14 08:28:50 閱讀次數:2716次

set_difference原型:

std::set_difference

default (1)
template <class InputIterator1, class InputIterator2, class OutputIterator> OutputIterator set_difference (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result);
custom (2)
template <class InputIterator1, class InputIterator2, class OutputIterator, class Compare> OutputIterator set_difference (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp);
該函數是獲得兩個集合的差集。

序列應該已經有序

返回值為result中最后一個被覆蓋元素下一位置的迭代器。

其行為類似于:

template <class InputIterator1, class InputIterator2, class OutputIterator> OutputIterator set_difference (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result) { while (first1!=last1 && first2!=last2) { if (*first1<*first2) { *result = *first1; ++result; ++first1; } else if (*first2<*first1) ++first2; else { ++first1; ++first2; } } return std::copy(first1,last1,result); }
一個簡單的例子:

#include <iostream> #include <algorithm> #include <vector> using namespace std; void setdifference() { vector<int> vi{1,2,3,4,4,6,9,22,11}; vector<int> v2{1,2,3,5,4,9,8}; vector<int> vresult(6); sort(vi.begin(),vi.end()); sort(v2.begin(),v2.end()); cout<<"vi="; for(int i:vi) cout<<i<<" "; cout<<endl; cout<<"v2="; for(int i:v2) cout<<i<<" "; cout<<endl; set_difference(vi.begin(),vi.end(),v2.begin(),v2.end(),vresult.begin()); cout<<"vreult="; for(int i:vresult) cout<<i<<" "; cout<<endl; }
運行截圖:





set_intersection原型:

std::set_intersection

default (1)
template <class InputIterator1, class InputIterator2, class OutputIterator> OutputIterator set_intersection (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result);
custom (2)
template <class InputIterator1, class InputIterator2, class OutputIterator, class Compare> OutputIterator set_intersection (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp);
該函數是求兩個集合的交集。

同樣的序列應該已經有序。

行為類似于:

template <class InputIterator1, class InputIterator2, class OutputIterator> OutputIterator set_intersection (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result) { while (first1!=last1 && first2!=last2) { if (*first1<*first2) ++first1; else if (*first2<*first1) ++first2; else { *result = *first1; ++result; ++first1; ++first2; } } return result; }
一個簡單的例子:

#include <iostream> #include <algorithm> #include <vector> using namespace std; void setintersection() { vector<int> vi{1,2,3,4,4,6,9,22,11}; vector<int> v2{1,2,3,5,4,9,8}; vector<int> vresult(6); sort(vi.begin(),vi.end()); sort(v2.begin(),v2.end()); cout<<"vi="; for(int i:vi) cout<<i<<" "; cout<<endl; cout<<"v2="; for(int i:v2) cout<<i<<" "; cout<<endl; set_intersection(vi.begin(),vi.end(),v2.begin(),v2.end(),vresult.begin()); cout<<"vreult="; for(int i:vresult) cout<<i<<" "; cout<<endl; }
運行截圖:


其中0是本來就有沒有被覆蓋的。更好的做法是使用for,然后利用set_intersection的返回值作為界限遍歷。



――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

//寫的錯誤或者不好的地方請多多指導,可以在下面留言或者點擊左上方郵件地址給我發郵件,指出我的錯誤以及不足,以便我修改,更好的分享給大家,謝謝。

轉載請注明出處:http://blog.csdn.net/qq844352155

author:天下無雙

Email:coderguang@gmail.com

2014-9-26

于GDUT

――――――――――――――――――――――――――――――――――――――――――――――――――










生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日韩精品欧美成人 | 亚洲欧美精品一区天堂久久 | 亚洲人成77777在线播放网站不卡 | 欧美极品尤物在线播放一级 | 最近最新中文字幕国语片 | www.黄色免费| 欧美亚洲免费久久久 | 久久国产精品视频 | 韩日一区二区三区 | 亚洲一区二区欧美日韩 | 亚洲欧美综合图片 | 日本中文字幕在线播放 | 亚洲欧美一区二区三区国产精品 | 自拍偷拍第4页 | 亚洲无av码一区二区三区 | 欧美另类69xxxx | 久久天堂 | 国产一区二区免费不卡在线播放 | 另类zoofilia杂交videos | 久久久久久久久国产 | 精品在线播放 | 亚洲伊人久久大香线蕉在观 | 久久久久久久久a免费 | 成年人在线观看免费视频 | 欧美国产日韩一区 | 国产一级视频久久 | 亚洲h视频 | 中文字幕第一 | 国内精品亚洲 | 亚洲爱爱网站 | 欧美性猛交xxxx乱大交丰满 | 久久精品视 | 国产精品福利视频一区二区三区 | 亚洲小说区图片区另类春色 | 亚洲最大网站 | 久久久久一区二区三区 | 视频在线观看免费视频 | 亚洲精品中文字幕一区在线 | 美国一级淫片 | 国产亚洲精品激情一区二区三区 | 亚洲综合亚洲综合网成人 |