# include <iostream>
# include <set>
using namespace std;
/*
set(集)-->不重复
multiset(多集) -->允许重复
红黑数(熟读快)
大数据使用方便,自动排序
缺点:插入慢
不能通过find进行修改
*/
//声明一个函数模板
template <typename Container>
void PrintContents(const Container &c) ;
int main(){
set<int> a;
multiset<int> ma;
a.insert(30);
a.insert(-1);
a.insert(3000);
a.insert(30);
//count计算a中几个30
cout<<a.count(30)<<endl;//1 没有返回0
//打印
// set<int>::const_iterator itr = a.begin();
// while(itr != a.end()){
// cout<<*itr<<endl;
// itr++;
// }
PrintContents(a);
//set的数据插入到 multiset中
ma.insert(a.begin(),a.end());
ma.insert(3000);
//count计算ma中几个3000
cout<<ma.count(3000)<<endl;//2 没有返回0
//打印
// multiset<int>::const_iterator iter = ma.begin();
// while(iter != ma.end()){
// cout<<*iter<<endl;
// iter++;
// }
PrintContents(ma);
return 0;
}
//模板函数的定义
//利用类模范自动获取类型
template <typename Container>
void PrintContents(const Container & c){
//typename 通知编译器的类型
typename Container::const_iterator i = c.begin();
while(i!=c.end()){
cout<<*i<<endl;
i++;
}
cout<<endl;
}