栈与队列简述

emplace与push的区别,emplace不用构造临时对象。

目录

栈的概述:

栈的操作:

队列的概述:

队列的操作

栈与队列的异同


栈的概述:

        栈位于头文件<stack>中,是一种先进后出的数据结构,先进的会被压在栈底,最后进的就是栈顶。而且只有栈顶的元素才能被访问,不支持随机访问。

栈的操作:

入栈:通过push或者emplace函数将元素压入栈中。

出栈:通过pop函数将栈顶元素出栈。

查看栈顶元素:通过top函数查看栈顶元素。

判断栈是否为空:通过empty函数判断栈是否为空。

查看栈的大小(存储的元素数量):通过size函数查看栈的大小。

	stack<int> stk;
	stk.push(2);  //入栈
	stk.push(3);
	int k = stk.top();  //查看栈顶元素
	stk.pop();   //出栈
	cout << "栈的大小为:" << stk.size() << endl;
	if (stk.empty()) {
		cout << "栈为空" << endl;
	}
	else {
		cout << "栈不为空" << endl;
	}

	//拷贝构造赋值
	stack<int> stk1(stk);
	cout << "栈顶元素为:" << stk.top() << endl;

队列的概述:

        队列位于头文件<queue>中,是一种先进先出的结构,只能尾进头出。不支持随机访问。

队列的操作

入队:通过push或者emplace从队尾入队。

出队:通过pop从队头出队。

查看队头元素:通过front查看队头元素。

查看队列是否为空:通过empty判断队列是否为空。

查看队列的大小(存储的元素个数):通过size查看队列中的元素个数。

	queue<int> q;
	q.push(2);    //入队
	q.push(3);
	q.emplace(4);
	q.pop();    //出队
	if (q.empty()) {    //判断队列是否为空
		cout << "队列为空" << endl;
	}
	else {
		cout << "队列大小为:" << q.size() << endl;    //查看队列大小
		cout << "队头元素为:" << q.front() << endl;    //查看队头元素
	}

	queue<int> q1(q);
	cout << "队头元素为:" << q1.front() << endl;

栈与队列的异同

        栈和队列都是通过deque(双端队列)实现的,但都不支持随机访问。栈是先进后出,队列先进先出。都通过push(emplace)入栈(队),通过pop出栈(队)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值