c++ stl1
目录
vector
头文件:
# include<vector>
vector的声明:
vector的一些操作:
1. .size()和.empty()
两个几乎所有的stl容器都具有的方法,.size()是返回容器的大小,.empty()是返回容器是否为空
2. .clear()
清空vector
3. .begin()和.end()
补充:迭代器,用的少, vector<int>::iterator it ; 可以当成指针来理解,前面加"*"号来取元素值
.begin()返回vector第一个元素的迭代器,.end()返回最后元素的后一个位置的迭代器
迭代器可以进行运算(像指针用于 it++、-- it等),迭代器用的很少
迭代器可以用于遍历,但是大都是用下面的第二种方法进行vector遍历
4. .front()和.back()
.front 返回第一个元素相当于a[0]、*a.begin()
.back 返回最后一个元素,相当于a[a.size() - 1] 、*--a.end()
5. .push_back() 和.pop_back()
.push_back(x) 从后面加入一个元素x
.pop_back将最后一个元素删除
自己敲一遍试试:
queue、pirority_queue
队列都是先进先出的
头文件:
# include<queue>
这个库里面包括两个:queue(循环队列)、priority_queue(优先级队列)
声明:
操作:
1.没有clear!
stl容器中,只有queue、priority_queue、stack没有clear,其他都有
想要清空一个队列直接从重新初始化一下即可:
2. .push() .pop()
.push(x) 将x从队尾入队
.pop()将队头元素出队
3.queue的 .front() 和 .back()
.front()返回队头元素
.back()返回队尾元素
4. priority_queue 的 .top()
.top()返回堆顶元素
自己敲一遍试试:
stack
栈都是先进后出的
头文件:
# include<stack>
声明:
操作:
1. .push(x) 将元素x入栈
2. .pop() 将栈顶元素出栈
3. .top() 取栈顶元素的值
试一试:
deque
双端队列,在两端都可进行入队出队
可以像数组一样直接取下标 []随机取
头文件:
# include<deque>
操作:
1. []可以随机访问
2. .begin() 和 .end()返回头尾迭代器
3. .push_back(x)、.push_front(x)和.pop_back()、.pop_front()
4. .clear()清空