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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值