vector set string map 用法

vector  动态数组

set  集合  

string  字符串

map  自定义映射

 

左闭右开

vector

    vector<int> vi;
    for(int i=0;i<10;i++)
        vi.push_back(i);//放在最后
    for(vector<int>::iterator it=vi.begin();it!=vi.end();it++)
        cout<<*it<<endl;

vi.begin 是第一个元素的地址(将迭代器理解为地址),end为最后一个元素的下一个元素地址

push,pop是不是暗示可以直接用来当栈用?

还有其他方法不一一举例了

vi.pop_back();

vi.size();

vi.clear();

vi.insert(it,x);

vi.erase(it);

vi.erase(it_first,it_last);//左闭右开

 

 

 set

默认自动去重,并按升序排序,因为用的是红黑树

另外允许重复的set有  multiset

不排序的set有  unordered_set  用的散列代替红黑树

    set<int> sset;
    for(int i=0;i<10;i++)
        sset.insert(i);
    for(set<int>::iterator it=sset.begin();it!=sset.end();it++)
    {
        cout<<*it<<endl;
    }

set就不是push  pop了

直接是insert函数

其他函数有

    set<int>::iterator it=sset.find(value);
    sset.erase();//参数可以填值或者迭代器,区间删除同vector
    sset.size();
    sset.clear();

 

string

c++的string可以用类似char数组的方式遍历

    string sss="546456sdfa";
    for(int i=0;i<sss.length();i++)
        cout<<sss[i];

cout  cin  都是整个输入输出

还可以转换为char数组

printf("%s",sss.c_str());

string还可以用迭代器输出

    for(string::iterator it=sss.begin();it!=sss.end();it++)
        cout<<*it;

加号可以直接拼接两个string

str3=str1+str2;

其他函数有

    sss.insert(pos,string);//在sss[pos]位置上插入string
    sss.insert(it,it_begin,it_end);//串 [it_begin,it_end)左闭右开插入到it位置(都是迭代器)
    sss.erase(it);
    sss.erase(pos,length);//区间抹除同vector
    sss.clear();
    sss.substr(pos,length);
    sss.find(string);
    sss.replace(pos,length,string);//sss[pos]开始,length长度的子串替换为string
    sss.replace(it_begin,it_end,string);//sss的迭代器it_begin,it_end左闭右开范围内的子串替换为string

 

 

map

    map<char,int> mmap;
    mmap['a']=1;
    cout<<mmap['a'];

相同键的值只能有一个

    for(map<char,int>::iterator it=mmap.begin();it!=mmap.end();it++)
        printf("%c %d ",it->first,it->second);

first是键值,second是存放的对应值,同样,map也会排序,用的也是红黑树

其他函数

    mmap.find(key);
    mmap.erase(it);
    mmap.erase(key);
    mmap.erase(it_begin,it_end);//左闭右开
    mmap.clear();
    mmap.size();

如果需要一个键对应多个值,multimap,这里是不是可以用来分类,并查集?

同set一样,也有unordered_map

原文链接: https://www.cnblogs.com/lxzbky/p/12541972.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    vector   set   string  map  用法

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/400042

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月14日 上午9:41
下一篇 2023年4月14日 上午9:42

相关推荐