zoukankan      html  css  js  c++  java
  • STL

    #include<iostream>
    #include<vector>
    #include<set>
    #include<string>
    #include<map>
    #include<queue> 
    #include<stack>
    #include<utility> 
    #include<algorithm>
    //set只能通过迭代器访问 
    using namespace std;//stl需要命名空间
    vector<vector<int> > name;//vector的定义可以是基本类型
    //结构体类型但是如果是stl类型要加空格
    vector<int> vs[1000];//定义vector数组
    //vector可以通过下标和迭代器访问
    vector<int> vi;
    set<int> s;
    string str="abcd";//可以通过下标和迭代器访问
    //和vector一样支持直接对迭代器加减数字 
    map<string,int>mp; 
    queue<int> q;
    priority_queue<int> q2; 
        struct fruit{
            string name;
            int price;
            friend operator <(fruit f1,fruit f2)//只能重载<价格高的优先级高和sort cmp相反 
            {
                return f1.price<f2.price; 
            } 
        };
            struct cmp{
            bool operator () (fruit f1,fruit f2)
            {
                return f1.price>f2.price;
            }
        };
    int main()
    {
        for(int i=1;i<=5;i++)
        {
            vi.push_back(i);
        }
        for(vector<int>::iterator it=vi.begin();it!=vi.end();it++)
        {
            cout<<*it<<" "<<endl;
        }
        vector<int>::iterator it2=vi.begin();
        for(int i=0;i<=5;i++)
        {
            cout<<*(it2+i)<<" "<<endl;
        }
        vi.pop_back();
        vi.size();
        vi.clear();
        vi.insert(vi.begin()+2,-1); //将-1插入vi[2]的位置
        vi.erase(vi.begin()+3);//删除单个元素
        vi.erase(vi.begin()+1,vi.begin()+4);//删除一个区间的元素 
        s.insert(100);//自动递增排序和降重 
        s.find(100);//返回迭代器
        //set.erase();2种 
        s.size();
        s.clear();
        //处理不唯一的情况mutilset
        //unordered_set只降重 散列代替红黑树 
         //string 读入和输出只能用cin cout
         printf("%s",str.c_str());//将string转换为字符数组 
         //string +=拼接 >=等符号比较字典序
         //length()和size()基本相同
         //insert(pos,string)
         //insert(it,it2,it3) it待插位置 [it2,it3)待插收尾迭代器 
         //erase()2种
         //substr(pos,len)
         //string::pos find函数失配返回值
         //find(str2)//返回第一次出现的位置的pos 
         //find(pos,str2)
        // str.replace(pos,len,str2);从pos长len替换str2
        //str.replace(it1,it2,str);
        map<char,int>mp;
        mp['c']=20;
        //map会按照键从小到大排序 
        //迭代器访问it->first,it->second
        //map.find(key)返回键值为key迭代器
        //map.erase(it)
        //map.erase(key) 
        //map.erase(first,last)
        //map.size()
        //map.clear()
        //多值对应mutimap unordered_map不按照key排序 
        //queue.push()入队pop 出队front队首元素 back队尾元素
        //empty size() 在使用front和back要判空
        //deque 
        //priority_queue 添加头文件queue就行 
        //没有front和back函数只能top访问队首元素
        //push top pop empty size
        //优先级设置
        priority_queue<int,vector<int>,less<int> > q; 
        //less数字大优先级大 greater<int> 数字小优先级大
     
        //friend 去掉 <改()重载的函数用结构体包装起来写在结构体外面 
    
         priority_queue<fruit,vector<fruit>,cmp> q5; 
         //如果结构体数据庞大可以在比较函数用引用和const 参数 
         //stack push pop top empty size
         //map包含utility
        // pair<string,int>p;
         // pair<string,int>p2("22",1); 
        // 临时pair pair<string,int>("22",1); make_pair("hah",2)
        //访问用p.first,p.second
        //pair可以直接用<等符号计较大小,先比较first在比较second 
        //map.insert(make_pair("hah",2));
        
        //max min abs(int)x必须是整数 math.h 下fabs用于浮点数
        //swap reverse(it1,it2) 反转数组 string 
        //next_permutation(a,a+3)给出下一个全排列
        //fill(a,a+3,233) sort(a,a+6)
    //sort函数只能用于string vector deque 而set和map内部是红黑树的不能用sort
    /* bool cmp(int a,int b) { return a>b; a>b时a放b前 } sort(a,a+4,cmp); *///lower_bound(first,last,val)返回第一个大于等于val位置 //upper_bound(first,last,val)返回第一个大于val位置 //如果是数组就返回指针如果是stl容器就返回迭代器 return 0; }
  • 相关阅读:
    Python数据结构-链表
    面试题4:替换空格
    面试题3:二维数组中的查找
    2019.12.17基佬出的一道题
    2019.12.17霍格沃兹测试学院一道题
    python_ck01(虚拟环境管理)
    api_DZFPKJ & api_DZFPCX(get_AES_url代码优化)
    cwyth(自动核销代码)
    api_DZFPKJ & api_DZFPCX
    字符串返回数组并排序(算法题)
  • 原文地址:https://www.cnblogs.com/tianyudizhua/p/13455424.html
Copyright © 2011-2022 走看看