您的位置:首页 > 其它

multiset的使用以及集合的运算

2017-10-05 14:55 363 查看
multiset的使用以及集合的运算

#include <algorithm>
#include <iostream>
#include <vector>
#include <set>
using namespace std;
int main()
{
//头文件 <set>
multiset<int> st;
multiset<int>::iterator it;
st.clear();
st.insert(1);
st.insert(1);
st.insert(2);
st.insert(2);
st.insert(3);
for(it = st.begin(); it != st.end(); ++it)
cout << *it << " ";
cout << endl;

it = st.begin();
st.erase(it);	//multiset删除迭代器位置,是删除当前位置的元素
for(it = st.begin(); it != st.end(); ++it)
cout << *it << " ";
cout << endl;

st.erase(2);	 //multiset删除一个数,是删除所有值为当前数的元素
for(it = st.begin(); it != st.end(); ++it)
cout << *it << " ";
cout << endl;

cout << "-------------------------------------" << endl;

set<int> st1, st2, st3;
vector<int> vt;
//头文件 <algorithm>
//交集 st1 ∩ st2
st1.insert(1); st1.insert(2); st1.insert(3); st1.insert(4);
st2.insert(3); st2.insert(4); st2.insert(5); st2.insert(6);
set_intersection(st1.begin(), st1.end(), st2.begin(), st2.end(),
inserter(st3, st3.begin()));
//inserter 在指定位置插入元素
for(set<int>::iterator it = st3.begin(); it != st3.end(); ++it)
cout << *it << " ";
cout << endl;

//并集 st1 ∪ st2
set_union(st1.begin(), st1.end(), st2.begin(), st2.end(),
inserter(vt, vt.begin()));
for(int i = 0; i < vt.size(); ++i)
cout << vt[i] << " ";
cout << endl;

//差集,st1 - st2
vt.clear();
set_difference(st1.begin(), st1.end(), st2.begin(), st2.end(),
inserter(vt, vt.begin()));
for(int i = 0; i < vt.size(); ++i)
cout << vt[i] << " ";
cout << endl;
return 0;
}


资料:

http://blog.csdn.net/zzuchengming/article/details/51045783

http://blog.sina.com.cn/s/blog_4e0987310101aiup.html

http://blog.csdn.net/zangker/article/details/22984803

http://blog.csdn.net/qq_36124802/article/details/53105622
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐