stl易混点,难点对比看

stl是一种容器,里面可以用的函数非常多,所以作为初学者,str的函数不同的容器容易搞混,这里我们就整体指明一下。
来吧,展示!!!

STL容器

  • vector
  • stack
  • queue
  • priority_queue
  • set
  • string
  • map
  • pair
    大概就这几种我在这里集中说一下~~
声明
vector vector <int> a;
        vector <string> b;
        vector <int> a(10); //声明长度为10的vector
        vector <int> a(20, 1); //声明长度为20的vector,全都初始化为1

stack  stack <int> a;
        stack <double> b;

queue  queue <int> a;
        queue <char> b; //画个圈圈圈出来 

priority_queue  priority_queue <int, vector <int>, less<int> > q;//从大到小
                  priority_queue<int, vector <int> , greater<int> > q;//从小到大

map map<int,int> a;
     map<int, string> b;
     map<string, string> c;

pair  pair <int, int> a;
       pair <int, string> b;
       pair <double, int> c;

string string s;

set   set <int> a;
       set <string> b;
插入
vector a.push_back(); //从末尾插入
        a.insert(a.begin() + 1, 3); //在下标为1的地方插入3

stack  a.push();

queue a.push();//在末尾插入一个元素

priority_queue  a.push();

map   1. a.insert(make_pair(1,2));//两种方法
       2. a[1] = 2;

pair  pair<int, double> a; 1. a = make_pair(1, 1.2);//两种方法
                            2. cin << a.first << a.second;

string  a.insert(0,"zjl");//在下标为0的位置插入zjl这个字符串;注意这里要用双引号

set  a.insert(x);//插入x
删除
vector a.pop_back();
        a.erase(a.begin())//删除下标为0的元素

stack  a.pop();//删除栈顶元素

queue a.pop();//删除队首的元素

priority_queue  a.pop();//删除第一个元素

map   

pair  

string  a.erase(3,2);//从下标3开始,删除2个字符

set  a.erase(x);//删除指针x处的元素
返回第一个元素、最后一个元素
vector a.begin(); a.end();//注意这里不是返回元素,而是指向第一个元素和最后一个元素的迭代器

stack  a.top();//返回栈顶元素

queue a.back(); a.front();//返回元素

priority_queue  a.top(); a.back();//返回元素

map   

pair  

string  

set  s.begin();//返回指向set最开始位置数据的指针
     s.end();//返回指向set最后一个数据单元+1的指针
查找元素
vector 

stack  

queue 

priority_queue  

map   a.find();//查找一个元素
      a.count();//返回指定元素出现的个数
      a.lower_bound();//返回键值>= 给定元素的第一个位置
      a.upper_bound();//返回键值 > 给定元素的第一个位置

pair  

string  a.find(str);//返回发现字符串首次出现的位置
        a.find(str, bg);//从下标为bg的地方开始查找

set  

这样是不是清楚多了~~
hhhhhh,奏乐

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值