C++标准容器库STL set:

int main()
{
    set<Student> stuset;
    stuset.insert(Student("zhangsan",22));  //默认为升序 会自动调用<操作符重载
    stuset.insert(Student("lisi",52));
    stuset.insert(Student("wangwu",48));

//    set<Student,less<Student>>stuset1;
//    stuset1.insert(Student("zhangsan",22));  //升序会自动调用<操作符重载
//    stuset1.insert(Student("lisi",52));
//    stuset1.insert(Student("wangwu",48));

//    set<Student,greater<Student>>stuset2;
//    stuset2.insert(Student("zhangsan",22));  //降序会自动调用>操作符重载
//    stuset2.insert(Student("lisi",52));
//    stuset2.insert(Student("wangwu",48));


//    set<Student>::iterator it = stuset.begin();       //ok    遍历
//    for(;it!=stuset.end();it++)
//        it->showStu();

    for_each(stuset.begin(),stuset.end(),show);
//    for_each(stuset1.begin(),stuset1.end(),show);
//    for_each(stuset2.begin(),stuset2.end(),show);
}
int main()
{
    set<Student> stuset;
    stuset.insert(Student("zhangsan",22));  //默认为升序 会自动调用<操作符重载
    stuset.insert(Student("lisi",52));
    stuset.insert(Student("wangwu",48));
                          //插入
    vector<Student>stuvec;
    stuvec.push_back(Student("lisi",22));
    stuvec.push_back(Student("xiaoli",22));
    stuvec.push_back(Student("xiaowu",22));

    stuset.insert(stuvec.begin(),stuvec.end()); //插入另一个容器的范围
    pair<set<Student>::iterator,bool> pr = stuset.insert(Student("yixiaop",22));
    if(pr.second)
    {
        cout<<"insert"<<endl;
        pr.first->showStu();
    }
    else
        cout<<"not insert"<<endl;
    for_each(stuset.begin(),stuset.end(),show);
}
    int i= stuset.count(Student("zhangsan",22));//判断值是否存在
    if(i>0)
    {
        cout<<"have the value"<<endl;
    }
    else
        cout<<"not have the value"<<endl;
                                            查找与删除

//    int n = stuset.erase(Student("zhangsan",0));
//    if(n>0)
//        cout<<"erase ok"<<endl;
//    else
//        cout<<"erase error"<<endl;        
//     for_each(stuset.begin(),stuset.end(),show);
//     cout<<"__________________"<<endl;
//    stuset.erase(++stuset.begin(),stuset.end());
     stuset.erase(stuset.begin());
     for_each(stuset.begin(),stuset.end(),show);
}
#endif

猜你喜欢

转载自www.cnblogs.com/xiaozoui11cl/p/12788279.html