2022-1-24 STL容器

2022-1-24 STL容器,第1张

2022-1-24 STL容器 一、近容器
    int arr[ ]:数组string:字符串,增删改查
    string s;
    string s1(s.begin(),s.end());
    string s2(s1);
    
    s.push_back('c');
    s.pop_back();
    s.front();
    s.back();
    s.erase(pos);
    
    string::iterator it = s.begin();
    for(it;it!=s.end();it++)
    {
        if(*it=='a')
        {
            it = s.insert(it,'b');
            it++;//防止迭代器失效
        }
    }
    
    s.c_str();//获取该字符串指针
    s.size();
    s.elear();
    s.empty();
二、顺序容器
    vector:一维数组,按照1.5倍扩容
    #include
    vector v;
    vector v1(v.begin(),v.end());//根据迭代器进行构造
    
    v.push_back(i);
    v.pop_back()
    v.back();
    v.front();
    
    v.max_size();//内存中能存放多少种该类容器
    v.swap(v1);
    v.empty();
    v.resize();
    v.reserve();
    v.size();
    
    for(int i=0;i::iterator it=v.begin();
    for(;it!=v.end();it++)
    {
        cout<<*it<<"  ";//通过迭代器进行遍历
    }
    
    copy(v.begin(),v.end(),ostream_iterator(cout," "));
    
    
    list:链表
    list l;
    l.push_front(2);
    l.pop_front();
    
    l.resize();
    l.reverse();//链表逆置
    
    deque:底层二维数组,双端队列容器适配器:stack,queue(底层都依赖于deque实现)stack:
    stack s;
    s.push(i);
    s.pop();
    s.top();
    s.empty();
    s.size();
    s.swap();

    queue:

    queue q;
    q.push(1);
    q.pop();
    q.front();
    q.size();
    q.empty();
    q.swap();
    priority_queue //优先级队列(了解)
 三、关联容器
    set:集合,数据有序,底层是红黑树 ,不允许重复
    #include
    set s;
    s.insert(num);
    s.erase(num);
    set::iterator it = s.find(num);//找到返回对应数据的迭代器 ,否则返回end
    if(it != s.end())
    {
        cout<<*it<  

    multiset:数据集合,数据有序,底层是红黑树 ,允许重复

    multiset ms;
    ms.insert(num);
    multiset::iterator it1 = ms.find(num);//返回找到的第一个元素的迭代器

    map:映射表,数据按key有序,红黑树,不允许重复

    map mm;
    mm.insert(make_pair(1,"abc"));
    mm.insert(pair(2,"def"));
    
    map::iterator it = mm.begin();
    for(;it !=mm.end();it++)
    {
        cout<first<<" ";//键
        cout<second<<" ";//值
    }
    
    map::iterator it1 = mm.find(key);
    mm.empty();
    mm.clear();
    mm.erase(key);
    mm.swap(mm1);
    mm.size();

    multimap:多重映射表,数据按key有序,红黑树,允许重复

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5714195.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存