Leetcode 刷题经验总结 C++版

文章目录一 容器1.vector2.stack3.queue, deque4. set,multiset5. map,multimap,hashmap二 常用类1. string三 常用函数1. sort()2. next_permutation()3. strtok()4. atoi(), atol(), atof()5. sprintf()6. strtol()一 容器每个容器都提供了很多方法,这里只介绍最适用于这种数据结构的一些方法,并且在做题时候会常用的一些方法。1.vectorvector
摘要由CSDN通过智能技术生成

一 容器

每个容器都提供了很多方法,这里只介绍最适用于这种数据结构的一些方法,并且在做题时候会常用的一些方法。

1.vector

vector 容器和数组是一样的,基本上除非题目输入定义了vector类型,自己也不太会引入vector。毕竟要多打很多字。

//定义:
vector <int> v;
//访问:
v[i];
//更新
v[i]=a;
//大小
v.size();
//末尾插入
v.push_back(a);
//末尾删除
v.pop_back();
//清空
v.clear();
//判断空
v.empty();
//排序
sort(v.begin(),v.end());//从小到大
sort(v.rbegin(),v.rend());//从大到小
//自定义排序
bool compare(int a,int b) 
{
    
    return a< b; //升序排列,如果改为return a>b,则为降序 
} 
sort(v.begin(),v.end(),compare);
//翻转
reverse(v.begin(),v.end());

2.stack

stack是栈,用数组加一个指示下标的变量也可以模拟stack,引入容器可以节省指示变量的处理,以及预防一些越界的问题。Stack 主要任务就是进栈出栈

//定义
stack<int> s;
//入栈
s.push(i);
//出栈
s.pop();
//栈顶元素
s.top();
//判空
s.empty();
//大小
s.size();

3.queue, deque

双端队列包含了队列的功能,所以一般直接用Deque,以防写着写着需要有变化。

//定义
deque<int> d;
//增加头元素
d.push_front(i);
//增加尾元素
d.push_back(i);
//访问头元素
d.front();
//访问尾元素
d.back();
//删除头
d.pop_front();
//删除尾
d.pop_back();
//判空
d.empty();
//长度
d.size();

4. set,multiset

set主要作用是自动去重,对于期望得到不重复的结果,使用set维护输出列表。由于set,multiset通过平衡二叉树实现,有自动排序功能。set不允许重复,multiset允许重复

//定义
set<int> s;
//添加元素
s.insert(i);
//删除元素
s.erase(i);
//查找元素 返回指针
s.find(i);
//大小
s.size();
//遍历
for(set<int>::iterator it=s.begin(); it!=s.
  • 3
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值