栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

容器适配器

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

容器适配器

容器适配器时基于容器实现的新容器.

容器是配置分为三种 stack

头文件:#include

对应数据结构中的栈,有先进后出的特性.

来自deque,,可用顺序容器vector,list,deque.

queue

头文件:#include

对应数据结构中的队列,有先进先出的特性.

来自deque,可用顺序容器list,deque.容器必须提供前插(push_front())运算

priority_queue

头文件:#include

它是一个带优先级的队列,可以按照某种优先级顺序进行删除.

来自vector,可用顺序容器vector,deque,容器必须提供随机访问功能.

提供了top访问下一个元素,默认从大到小顺序进行删除.

stack

允许在顶部插入删除,不能访问中间元素.

没有迭代器,遍历可以弹出访问栈顶元素(也不支持下标操作)

stack s;
stack> s;    //两个等价的

//要从vector衍生stack可以
stack> s;
成员函数
#include 
#include 

using namespace std;

int main()
{
	stack s;

	//判断栈是否为空
	if (s.empty())
	{
		cout << "is empty" << endl;
	}

	//栈顶插入元素
	s.emplace(1);	//C++11
	s.push(2);	

	//返回栈顶元素
	cout << s.top() << endl;	//2

	//栈中的元素个数
	cout << s.size() << endl;	//2

	//删除栈顶元素
	s.pop();

	cout << s.top() << endl;	//1

	//交换两个stack
	stack s2;
	s2.emplace(4);
	s2.emplace(8);
	s2.emplace(9);
	s2.emplace(2);

	s.swap(s2);
	cout << s.size() << endl;	//4
	cout << s2.size() << endl;	//1

	return 0;
}
queue

队尾插入,队首删除,同样不能访问中间元素,并且没有迭代器.

成员函数
#include 
#include 

using namespace std;

int main()
{
	queue q;

	//判空
	if (q.empty())
	{
		cout << "is empty" << endl;
	}

	//队尾插入元素
	q.push(1);
	q.emplace(2);
	
	//返回队首元素
	cout << q.front() << endl;	//1
	
	//返回队尾元素
	cout << q.back() << endl;	//2	

	//返回当前元素个数
	cout << q.size() << endl;	//2

	//删除队首元素
	q.pop();
	cout << q.size() << endl;	//1
	cout << q.front() << endl;	//2

	queue q2;
	q2.emplace(1);
	q2.emplace(2);
	q2.emplace(3);
	q2.emplace(4);
	q2.emplace(5);

	//交换两个容器
	q.swap(q2);
	cout << q.size() << endl;	//5
	cout << q2.size() << endl;	//1

	return 0;
}
priority_queue

不同于,最大元素是队首,可以排序,默认升序.

没有front和back

成员函数
#include 
#include 

using namespace std;

int main()
{
	priority_queue q;
	
	//判空
	if (q.empty())
	{
		cout << "is empty" << endl;
	}

	//添加元素
	q.push(4);
	q.emplace(2);

	//返回最大元素
	cout << q.top() << endl;	//4
	
	//返回元素个数
	cout << q.size() << endl;	//2

	//删除最大元素
	q.pop();	

	cout << q.top() << endl;	//2

	return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/297062.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号