STL stack简单使用

下面是STL stack的一些简单使用例子,上代码:

// Stack.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
#include<stack>
#include<list>

int _tmain(int argc, _TCHAR* argv[])
{
	using namespace std;
	std::cout << "stack 的一些简单使用:" << endl;
	stack<int> s;
	//栈插入数据
	for (size_t i = 0; i <= 10; i++)
	{
		s.push(i);
	}

	std::cout << "stack size :" << s.size()<<endl;

	//stack没有迭代器
	std::cout << "当前栈数据为:" << endl;
	while (!s.empty())
	{
		std::cout << s.top() << " ,";
		s.pop();
	}
	std::cout << endl;

	//第二个参数是stack的容器,默认是deque
	stack<int, list<int>> s1;
	for (size_t i = 10; i < 20; i++)
	{
		s1.push(i);
	}

	std::cout << "s1当前栈数据为:11,12,13,14,15,16,17,18,19" << endl;
	std::cout << endl;
	std::cout << "s1 size:" << s1.size() << endl;
	
	stack<int, list<int>>s2;
	for (size_t i = 20; i < 30; i++)
	{
		s2.push(i);
	}
	std::cout << "s2当前栈数据为:20,21,22,23,24,25,26,27,28,29" << endl;
	/*while (!s2.empty())
	{
		std::cout << s2.top() << " ,";
		s2.pop();
	}*/
	std::cout << endl;
	std::cout << "s2 size:" << s1.size() << endl;

	std::cout << "s1,s2交换数据后:" << endl;
	s1.swap(s2);//栈只有容器相同的时候才能使用swap函数,如果这里上s1.swap(s)就会报错。
	std::cout << "s1当前栈数据为:" << endl;
	std::cout << "s1 size:" << s1.size() << endl;
	while (!s1.empty())
	{
		std::cout << s1.top() << " ";
		s1.pop();
	}
	std::cout << endl;

	std::cout << "s2当前栈数据为:" << endl;
	std::cout << "s2 size:" << s2.size() << endl;
	while (!s2.empty())
	{
		std::cout << s2.top() << " ";
		s2.pop();
	}
	//查询数据,这个?我准备用find,可是find要求是迭代器,stack没迭代器?不是说find在stl里
	//是通用函数么,是我遗忘了?虽然说在栈中查找不是很科学。

	return 0;
}
输出:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值