C/C++解题常用STL大礼包 含vector,map,set,queue(含优先队列) ,stack的常用用法

/*
C/C++解题常用STL大礼包 含vector,map,set,queue(含优先队列) ,stack的常用用法
*/

//vector常用用法
//头文件
#include<vector>

//常用的初始化方法
vector<int> v;            //直接定义一个整型元素的向量 且未声明长度,其中int的位置可以换成别的数据类型或者结构体等
vector<int> v(10);        //定义了10个整型元素的向量,其中每一个数都没有初值
vector<int> v(10, 5);    //定义了10个整型元素的向量,并且为每个元素赋初值5

//常用的操作
v.back();                //返回最后一个元素
v.front();                //返回第一个元素
v.clear();                //清空v中的元素
v.empty();                //判断v是否为空,空则返回true,否则false
v.push_back(5);            //在最后的一个元素后插入5
v.size();                //返回v中的元素的个数

sort(v.begin(), v.end(), cmp);    //sort排序,其中cmp部分与结构体等数据类型自定义排序时cmp相同用法

for(int i = 0; i < v.size(); i++){    //遍历
    printf("%d\n", v[i]);
}





/*
    map常用用法
*/
//头文件
#include<map>

//常用操作
map<int, int> m;        //初始化
m[1] = 5;                //以数组形式插入值
m[2] = 6;
m[1]++;                    //可以参与运算
m[2] += 2;
cout<<m[1]<<endl;
cout<<m[2]<<endl;





/*
    set常用用法 set中的元素自动从小到大排序,且合并重复元素
*/
//头文件
#include<set>

//常用操作
set<int>s;        //定义
s.insert(x);    //插入数值
s.clear();         //删除set容器中的所有的元素
s.empty();        //判断set容器是否为空

set<int>::iterator it;                //遍历
for(it = s.begin(); it != s.end(); it++)
{
    printf("%d\n", *it);
}

//s.end()没有值
cout<<"s.begin()   "<<*s.begin()<<endl;
//lower_bound()--返回指向大于(或等于)某值的第一个元素的迭代器
cout<<"lower_buond  3  "<<*s.lower_bound(3)<<endl;
//upper_bound()--返回大于某个值元素的迭代器
cout<<"upper_bound  3  "<<*s.upper_bound(3)<<endl;
//find()--返回一个指向被查找到元素的迭代器
cout<<"find(3)   "<<*s.find(3)<<endl;
cout<<"s.size()  "<<s.size()<<endl;





/*
    queue常用用法
*/
//头文件
#include<queue>

//常用操作对于普通队列来说
queue<int> q;        //定义一个队列
q.front();            //获取队首元素
q.pop();            //删除队首元素
q.empty();            //判断队列是否为空
q.push(5);             //向队列中加入元素





//priority_queue
priority_queue<int> q;    //定义一个优先队列
q.top();            //获取队列中最大元素(首个)
q.pop();            //删除最大元素(队首)
q.push(x);            //向队列中加入元素
q.empty();            //判断优先队列是否为空

//对于结构体而言,需要重载小于号(优先队列按照从大到小排序)
priority_queue<Node> q;

struct Node{
    int a, b;
    bool operator < (const Node & x) const
    {
        return a > x.a;
    }
};





/*
    stack常用用法
*/
//头文件
#include<stack>

//常用操作
stack<int> s;        //定义一个栈
s.pop();            //删除栈顶元素
s.top();            //获取栈顶元素
s.empty();            //判断栈是否为空
s.push(5);            //向栈中压入5
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值