当前位置:文档之家› C++STL

C++STL

C++STL
C++STL

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 obv(10,8) 10个int型元素,每个都初始为8

list obl(5,3.2) 5个double类型元素,每个初始化为3.2 deque obd(100,”hello”) 100个string型元素

容器的赋值:

根据已有容器创建新的容器,并将其中的元素完全复制过来

vector obv2(obv1)

list obl2(obl1)

deque obd2(obd1)

数组的赋值:

int sz[5]={1,2,3,4,5};

vector obv(sz,sz+5);

list obl(sz,sz+5);

deque obd(sz,sz+5);

容器的遍历:

可以通过“容器名[下标]”或“容器名.at(序号)”对vector和deque 中元素进行访问,和数组一样,初始下标问为0。

对list来说,不支持数组表示法

#include

#include

#include

#include

using namespace std;

int main()

{

int sz[5]={1,2,3,4,5};

vector obv(sz,sz+5);

for(int i=0;i<=4;i++)

{

cout<

}

list obl(3,5);

list::iterator iter=obl.begin();//创建list型迭代器,类似指针概念,指向obl的第一个元素

while(iter!=obl.end())//obl.end()是返回末尾元素的下一个迭代器{

cout<<(*iter)<<" ";//通过迭代器间接访问容器中的元素

iter++;//只向下一个元素

}

return 0;

}

STL中的栈与队列

#include

#include

#include

stack p;//定义一个栈

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;

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;

}

相关主题
文本预览
相关文档 最新文档