STL C++


基础用法

可变数组vector

特点:

  1. 长度可变

常用方法:

  1. 头文件

    #include <vector>
    
  2. 初始化
    vector<数据元素类型> 数组名;
    vector<数据元素类型> 数组名(数组长度);
    vector<数据元素类型> 数组名(数组长度,元素初始值);
    注:定义一个定长的某类型数组,并给数组中每个元素都赋初值
    vector<数据元素类型> 数组名(被复制的数组名);

  3. 常用操作
    (1)添加元素
    push_back(插入的元素);//尾部插入元素
    insert(index,value); //在index位置插入元素
    insert(index,length,value);//在index位置位置插入length个元素,元素的值均为value
    (2)删除元素
    pop_back();//从尾部删除元素
    erase(start,end);//删除处于[start,end)区间的元素
    clear(); //清空数组
    (3)查询数组信息
    a[i]//查询数组第i个元素
    back();//查询数组最后一个元素
    front();//查找数组的第一个元素
    empty(); //判断数组是否为空
    size(); //查询数组长度
    (4)其他
    resize(newlength);//重新分配数组长度
    注:当新长度大于原先长度时,多于原先的部分填充随机值
    resize(newlength,value);//重新分配数组长度
    注:当新长度大于原先长度时,多于原先的部分填充value

map

特点:

  1. 键值对模式<key,value>,key,value都可以是任意数据类型,可以根据key找value
  2. 自动排序

常用方法:

  1. 头文件
#include <map>
  1. 初始化
    map<key的类型,value的类型> 名字
  2. 常用操作
    (1)添加元素
    insert(pair<key的类型,value的类型>(key,value);
    注:如果key已在map中则不会插入
    mp[key]=value;
    注:如果key未在map中,则会将<key,value>插入map中;如果key已在map中,则会更新value的值;
    (2)删除元素
    erase();
    (3)查询map的信息
    mp[key];//查询key值对应的value
    size();
    clear();
    count(key);//判断某一key值是否在该map里出现过
    empty();//判断是否为空
  3. 其他

集合set

** 特点:**

  1. 自动排序
  2. 去重
    常用方法:

栈stack

** 特点:**

  1. 先进后出

常用方法:

  1. 头文件
#include <stack>
  1. 初始化
    stack<数据类型> stk;
  2. 常用操作
    (1)压栈
    push(元素);
    (2)弹栈
    pop();
    (3)访问栈顶
    top();
    (4)其他
    empty();
    size();

队列queue

特点:

  1. 先进先出
    常用方法:
  2. 头文件
#include <queue>
  1. 入队
    push();
  2. 出队
    pop();
  3. 查询队首
    front();
  4. 查询队尾
    back():
  5. 其他
    size():
    empty():

嵌套用法

vector与vector嵌套

vector<vector<数据元素类型>> 数组名
vector<vector<数据元素类型>> 数组名(一维长度,vector<数据元素类型>(二维数组长度))

set与map嵌套

#include <iostream>
#include <map>
#include <set>
using namespace std;
map<int,set<int>> mps;
int main()
{
    mps[5].insert(3);
    mps[5].insert(5);
    mps[5].insert(7);

    for(set<int>::iterator it=mps[5].begin();it!=mps[5].end();it++){
        cout<<*it<<" ";
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值