C++ STL 容器整理

vector

  1. 创建vector
    1. vector< type >vec;//声明一个空向量
    2. vector< type >vec(n);//声明一个初始大小为n的的向量
    3. vector< type >vec(vec1);//以复制一个vec1向量
  2. 插入元素
    1. push_back(a)//在向量的尾部插入元素a
    2. insert(vec.begin()+i,a)//在向量的第i个位置插入元素a
  3. 删除元素
    1. clear()//清空向量
    2. erase(vec.begin()+i)//删除第i个元素
    3. erase(vec.begin()+i,vec.begin()+j)//删除区间[i,j)上的元素
  4. 判断是否为空
    1. empty()//为空返回true,否则返回false
    2. size()//返回向量中元素的个数
  5. 迭代器的使用
#include<iostream>
#include<vector>
using namespace std;
int main(){
    vector<int>vec(n);
    for(int i = 0;i < vec.size();i++){
        vec[i] = i;
    }
    vector<int>::iterator iter;
    for(iter = vec.begin();iter != vec.end();iter++){
        cout<<*iter<<" ";
    }
    return 0;
}

map

  1. 创建map
    1. map< key_type,value_type >mp;
  2. 插入元素
    1. mp[key] = value;
    2. mp.insert(pair< key_type,value_type >(key,value));
  3. 查找元素
    1. find(a)//寻找key值为a的元素,找到则返回指向该元素的迭代器
  4. 删除元素
    1. erase(iter)//删除迭代器iter指向的元素
    2. clear()//删除所有元素
  5. 判断是否为空
    1. empty()//为空返回true,否则返回false
    2. size()//返回map容器中键值对的个数
  6. 迭代器使用
#include<iostream>
#include<map>
using namespace std;
int main(){
    map<int,int>mp;
    for(int i = 0;i < 10;i++){
        mp.insert(pair<int,int>(i,i+1));
    }
    map<int,int>::iterator iter;
    for(iter = mp.begin(),iter != mp.end();iter++){
        cout<<iter->first<<" "<<iter->second<<endl;
    }
    return 0;
}

string

  1. 创建string
    1. string s;//声明一个string对象
    2. string s1(s2);//复制一个string对象
    3. string s(n,’c’);//用n个’c’字符创建一个string对象
  2. 改变string
    1. s = s1 + s2;//拼接两个字符串
    2. s = s.substr(i,j);//截取区间[i,j)上的字符串
    3. s.insert(i,”123”);//将字符串”123”插入到i位置
    4. s.erase(i);//删除i位置的字符
    5. s.erase(i,j);//删除区间[i,j)上的字符串
    6. s.append(a);//将a拼接到s后面
    7. reverse(s.begin(),s.end());//将字符串反转
  3. 字符串查找
    1. find(a);//返回第一次找到a的下标
    2. find_first_not_of(a);//返回第一个不是a的下标
    3. find_first_of(a);//返回第一个是a的下标
    4. find_last_not_of(a);//返回最后一个不是a的下标
    5. find_last_of(a);//返回最后一个a的下标
  4. length();//返回字符串的长度

set

  1. 创建set
    set< type >myset;
  2. 添加元素
    insert(a)
  3. 删除元素
    1. erase(a);//删除值为a的元素
    2. clear();//清空元素
  4. 判断是否为空
    1. empty();//为空返回true,否则返回false;
    2. size();//返回set容器中元素的个数
  5. 迭代器的使用
#include<iostream>
#include<set>
using namespace std;
int main(){
    set<int>myset;
    for(int i = 0;i < 10;i++){
        myset.insert(i);
    }
    set<int>::iterator iter;
    for(iter = myset.begin();iter != myset.end();iter++){
        cout<<*iter<<endl;
    }
    return;
}

queue

  1. 创建队列
    queue< int >que;
  2. 入队
    push(a);
  3. 出队
    pop()
  4. 访问队首元素
    front()
  5. 访问队尾元素
    back()
  6. 查看队列大小
    size()
    empty()

stack

  1. 声明栈
    stack sta;
  2. 入栈
    push()
  3. 出栈
    pop()
  4. 访问栈顶元素
    top()
  5. 查看栈内元素个数
    size()
    empty()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值