STL
1.容器
容器即是可容纳一些数据的模板类,vector,list,deque,set,map,.multimap.multiset
|外k t| |day kei you|
2.适配器
Stack,queue,priority_queue
3.迭代器
也称游标,可理解为广义的指针,和指针功能很像,通过“*”和“-> ”从容器返回一个值
迭代器定义的格式:
容器类型::iterator 迭代器对象名
4.算法
一.容器
序列式容器:
#include
#include
#include
创建容器:
vector
list
容器的赋值:
根据已有容器创建新的容器,并将其中的元素完全复制过来
vector
list
deque
数组的赋值:
int sz[5]={1,2,3,4,5};
vector
list
deque
容器的遍历:
可以通过“容器名[下标]”或“容器名.at(序号)”对vector和deque 中元素进行访问,和数组一样,初始下标问为0。
对list来说,不支持数组表示法
#include
#include
#include
#include
using namespace std;
int main()
{
int sz[5]={1,2,3,4,5};
vector
for(int i=0;i<=4;i++)
{
cout< } list list while(iter!=obl.end())//obl.end()是返回末尾元素的下一个迭代器{ cout<<(*iter)<<" ";//通过迭代器间接访问容器中的元素 iter++;//只向下一个元素 } return 0; } STL中的栈与队列 #include #include #include stack p.push(5);//将元素5压入栈 p.pop()//栈不为空,弹出栈中的一个元素 p.top()//返回栈顶元素 p.size()//返回栈中元素个数 p.empty()//判断栈是否为空,为空返回true,否则返回false STL中的queue p.push(5);//将元素5接到队列的末端 p.pop()//栈不为空,弹出队列中的第一个元素 P.front()//存取队列的第一个元素 P.back()//存取队列的最后一个元素 p.size()//返回队列中元素个数 p.empty()//判断队列是否为空,为空返回true,否则返回false STL中的priority_queue #include #include using namespace std; int main() { priority_queue q.push(1); q.push(5); q.push(2); q.push(4); q.push(3); int size=q.size(); for(int i=1;i<=size;i++) { cout< q.pop(); } cout< return 0; }