zoukankan      html  css  js  c++  java
  • set_map_二叉搜索树

    /*
    set:二叉搜索树维护集合的容器
    map:维护键和键对应的值的容器
    */
    #include<iostream>
    #include<set>
    #include<map>
    #include<string>
    
    using namespace std;
    
    int main()
    {
        set<int> s;
    
        s.insert(1);
        s.insert(5);
        s.insert(3);
    
        set<int>::iterator ite;
    
        ite = s.find(1);
        if (ite == s.end())cout << "not found";
        else cout << "found";
    
        //删除元素
        s.erase(1);
    
        //其它查找方式
        if (s.count(3) != 0)cout << "found";
        else cout << "not found";
    
        //遍历
        for (ite = s.begin(); ite != s.end(); ite++)
            cout << *ite << " ";
    
        map<int, const char*> m;
    
        m.insert(make_pair(1, "one"));
        m.insert(make_pair(10, "ten"));
        m[100] = "hundred";
    
        map<int, const char*>::iterator ite2;
        ite2 = m.find(1);//查找
        cout << ite2->second << endl;
    
        ite2 = m.find(2);
        if (ite2 == m.end())cout << "not found";
        else cout << ite2->second;
    
        cout << m[10];//其它写法
    
        m.erase(10);//删除
    
        //遍历
        for (ite2 = m.begin(); ite2 != m.end(); ite2++)
            cout << ite2->first << " " << ite2->second << endl;
    
        system("pause");
        return 0;
    }

     

    /*
        set 结构体排序用法
        实例:用set查找人名
        strcpy(a,"name"):赋给字符串a值“name”
        strcmp(a,b):a>b=1,a<b=-1,a==b=0
    */
    #include<iostream>
    #include<cstdio>
    #include<set>
    #include<cstring>
    using namespace std;
    
    struct student{
        char name[10];
        int stunum;
    };
    
    //set 排序的规则
    class cmpp
    {
        public:
        bool operator()(const student &a, const student &b) const{
            if(strcmp(a.name,b.name)<0)return true;
            else if(strcmp(a.name,b.name)==0)return a.stunum<b.stunum;
            else return false;
        }
    };
    
    int main()
    {
        student a,b;
        strcpy(a.name,"赵钱");
        a.stunum=1;
        strcpy(b.name,"孙李");
        b.stunum=9;
        set<student,cmpp> s;
        s.insert(a);
        s.insert(b);
    
        set<student,cmpp>::iterator iter;
    
        for(iter=s.begin();iter!=s.end();iter++)cout<<(*iter).stunum<<endl;
    
        //查找
        iter=s.find(b);
    
        //iter若不等于s.end(),说明查找到目标(iter!=s.end()非常重要)
        if(iter!=s.end()){cout<<"name:";puts((*iter).name);cout<<endl;}
        else cout<<"not find
    ";
    
        return 0;
    }

    世上无难事,只要肯登攀。
  • 相关阅读:
    【JOB】Oracle中JOB的创建方法以及一个细节的探究
    PHP安装加载yaf扩展
    微信开发(1) -- 将本地开发环境映射到公网访问
    修改Nginx与Apache上传文件大小限制
    liunx系统安装composer与配置
    Mysql 5.7 liunx 忘记密码的补救方法
    Vim使用技巧(4) -- 命令行模式 【持续更新】
    Vim使用技巧(3) -- 可视化模式技巧 【持续更新】
    Vim使用技巧(2) -- 插入模式技巧 【持续更新】
    Postman 安装及使用入门教程
  • 原文地址:https://www.cnblogs.com/littlehoom/p/3513921.html
Copyright © 2011-2022 走看看