剑指Offer C++总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaomifanhxx/article/details/84965435

1、向量vector用法

1.1  Vector的存储空间是连续的,List不是连续存储的。

定义初始化: 

vector<type> v //默认v为空,即v[0]=5是错误的;
vector<type> v1(v) 或者v1=v或者vector<type> v1(v.begin(),v.end());
vector<type> v(n,i) v中包括n个值为i的type类型的值
vector<type> v(n,0) v中包括n个值为0的type类型的值

1.2  vector的几种操作

v.push_back(t)  扩充容器的size
另外list有push_front()函数,在前端插入,后序的元素下标依次增大
v.size() 返回容器中数据的个数
v.empty()判空
v.insert(pointer,number,content) 向v中pointer的位置处插入number个content,也可以是v.insert(pointer,content)
v.pop-back()删除容器中的末元素,并不返回该元素
v.erase(pointer1,pointer2)删除pointer1到pointer2中间的元素(包含pointer1所指的)
vector<int>::iterator p=v.begin(),p初始值指向v的第一个元素,*p是取所指元素的值。
v.clear()清空向量

#include<algorithm>中泛函算法

搜索算法:find(),search(),count(),find_if(),search_if(),count_if()
分类排序:sort(),merge()
删除算法:unique(),remove()

2  堆栈的Stack的用法

Stack初始化和vector比较类似
stack<type> s
stack的基本操作:
入栈:s.push(x)
出栈:s.pop()只是删除栈顶元素,但并不返回该元素
访问栈顶:s.top()
判空:s.empty()
访问栈中元素的个数:s.size() 

3  队列queue的用法

queue队列初始化与vector以及stack一样
queue<int> q
入队:q.push()
出队:q.pop()将首个元素取出去,并且没有返回值
q.size()队列类型数的数量
q.empty()判空
q.front()返回队列第一个元素
q.back()返回队列最后一个元素

4  C++原带的stl中二分法函数equal_range(),应用于排列好的列表或者数组

equal_range(vector.begin(),vector.end(),value)

其返回指向输入序列中所有值等于val的元素所组成的子序列的起始及末尾位置。

猜你喜欢

转载自blog.csdn.net/xiaomifanhxx/article/details/84965435