c++中,什么是容器的适配器?

能不能简单的说一下,或举个例子。
2024-12-21 03:55:11
推荐回答(1个)
回答1:

C++编程宝典书上所说的容器适配器常见的有三种

1 stack 堆栈适配器 ( 可用的容器类型 vector deque list)
2 queue 队列适配器 ( 可用的容器类型 deque list)
3 priority_queue 优先级队列 (可用的容器类型 deque vector)

都有 增加--push()和 删除--pop()方法

stack 用法:

#include
#include //堆栈适配器头文件
#include
using namespace std;
int main(void)
{
std::stack< int,std::list > charStack;
cout<<"入栈:"<for(int i=0;i<10;i++)
{
cout< charStack.push(66+i);
}
cout<<"出栈:"<int size=charStack.size();
for (i=0;i{
cout< charStack.pop();
}
cout<return 0;
}

queue用法:
#include
#include
#include
using namespace std;
int main()
{
std::queue< int,list > intQueue;
cout<<"入队:"<for(int i=1;i<=10;i++)
{
intQueue.push(i*100);
cout<}
cout<<"出队:"<int size=intQueue.size();
for(i=0;i{
cout< intQueue.pop();
}
return 0;
}

priority_queue 用法:
#include
#include
#include
using namespace std;
int main()
{
std::priority_queue< int,vector,std::greater > intPQueue; //优先级greater 可换成 less
intPQueue.push(100);
intPQueue.push(500);
intPQueue.push(600);
intPQueue.push(200);
intPQueue.push(300);
intPQueue.push(400);
int size=intPQueue.size();
for(int i=0;i{
cout< intPQueue.pop();
}
return 0;
}