printf("用set的迭代器输出元素/n");
for (set<int>::iterator iter = s2.begin(); iter != s2.end(); iter++)
{
cout<<*iter<<" ";
}
cout<<endl;
//交集
set_intersection(s1.begin(), s1.end(), s2.begin(), s2.end(), inserter(s_i, s_i.begin()));
printf("交集为:/n");
copy(s_i.begin(), s_i.end(), ostream_iterator<int>(cout, " "));
printf("/n");
//并集
set_union(s1.begin(), s1.end(), s2.begin(), s2.end(), inserter(s_u, s_u.begin()));
printf("并集为:/n");
copy(s_u.begin(), s_u.end(), ostream_iterator<int>(cout, " "));
printf("/n");
//差集
set_difference(s1.begin(), s1.end(), s2.begin(), s2.end(), inserter(s_d, s_d.begin()));
printf("差集为:/n");
copy(s_d.begin(), s_d.end(), ostream_iterator<int>(cout, " "));
printf("/n");
//对称差
set_symmetric_difference(s1.begin(), s1.end(), s2.begin(), s2.end(), inserter(s_sd, s_sd.begin()));
printf("对称差为:/n");
copy(s_sd.begin(), s_sd.end(), ostream_iterator<int>(cout, " "));
printf("/n");
/*set的插入操作*/
pair<set<int>::iterator, bool> p;
p = s1.insert(100);
if (p.second == true)
{
cout<<"插入成功!"<<endl;
}
else
{
cout<<*p.first<<"已经在集合中了"<<endl;//注意点运算符(.)比反引用运算符*的优先级高
}
s1.insert(20);
s1.insert(--s1.end(), 50);
s1.insert(s2.begin(), s2.end());
/*map操作*/
map<int, string> myMap;
//插入元素的方法
pair<int, string> mypair;
mypair = make_pair(1, "wang");
pair<map<int, string>::iterator, bool> p1 = myMap.insert(mypair);
myMap.insert(pair<int, string>(2, "yang"));
myMap[3] = "zhang";
myMap.insert(pair<int ,string>(2, "xu"));
/*输出元素*/
for (map<int, string>::iterator iter = myMap.begin(); iter != myMap.end(); ++iter)
{
cout<<(*iter).first<<" "<<(*iter).second<<endl;
}
}