Set & MultiSet
2013-09-13 16:12
239 查看
/* Set VS. Multiset @author arhaiyun */ #include "stdafx.h" #include <set> #include <iostream> using namespace std; /* C++ STL set和multiset的使用 set的含义是集合,它是一个有序的容器,里面的元素都是排序好的,支持插入,删除,查找等操作,就像一个集合一样。所有的操作的都是严格在logn时间之内完成,效率非常高。 set和multiset的区别是:set插入的元素不能相同,但是multiset可以相同。 创建 multiset<ss> base; 删除:如果删除元素a,那么在定义的比较关系下和a相等的所有元素都会被删除 base.count( a ):set能返回0或者1,multiset是有多少个返回多少个. Set和multiset都是引用<set>头文件,复杂度都是logn [basic operations] begin()/rbegin(); end()/rend(); clear(); empty(); earse(*iterator); iterator find(); insert(); max_size(); size(); swap(); upper_bound(); value_comp(); */ typedef struct{ int index; char pc; }DataType; struct compare { bool operator()(const DataType &m, const DataType &n) const { return m.pc < n.pc; } }; multiset<DataType, compare> dataSet; int main(int argc, char* argv[]) { DataType a, b, c, d; a.index = 1; a.pc = 'd'; b.index = 2; b.pc = 'b'; c.index = 3; c.pc = 'c'; d.index = 4; d.pc = 'a'; dataSet.insert(a); dataSet.insert(b); dataSet.insert(c); dataSet.insert(c);//if set : can't insert c again dataSet.insert(d); multiset<DataType, compare>::iterator iter = dataSet.begin(); for(; iter != dataSet.end(); iter++) { cout<<(*iter).index<<" "; } cout<<endl; iter = dataSet.begin(); for(; iter != dataSet.end(); iter++) { cout<<(*iter).pc<<" "; } cout<<endl; multiset<DataType, compare>::reverse_iterator r_iter; r_iter = dataSet.rbegin(); for(; r_iter != dataSet.rend(); r_iter++) { cout<<(*r_iter).pc<<" "; } cout<<endl; iter = dataSet.begin(); dataSet.erase(c); for(; iter != dataSet.end(); iter++) { cout<<(*iter).pc<<" "; } dataSet.clear(); system("pause"); return 0; }
相关文章推荐
- 迭代器的解释&&set和multiset
- C++ Set & MultiSet
- STL - 常用关联容器代码 - set & multiset
- STL之set&multiset使用简介
- C++/STL关联容器-集合-multiset&set的用法
- 关联容器:set multiset map multi…
- STL_set&multiset
- Set&Multiset
- C++标准库---set&multiset
- Set & Multiset
- STL之set&multiset容器(笔记)
- 关联容器(set & multiset & Map& multimap)
- STL之set && multiset
- 转自http://blog.sina.com.cn/daylive——C++ STL set&multiset
- 早期的Sevlet不支持 respose.setCharacterEncoding("...")方法的解决办法
- STL学习笔记----5.容器 set 和 multiset
- JavaBean与Jsp、在JSP中使用JavaBean(<jsp:useBean>标签、<jsp:setProperty>标签、<jsp:getProperty>标签)
- 51nod1562(set&模拟)
- iOS开发-Day19-OC NSDictionary&NSMutableDictionary&NSSet&NSMutableSet
- Server was unable to process request. ---> Object reference not set to an instance of an object解决