set用法1

 # 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;

}

你可能感兴趣的:(set)