学习总结。。。

今天学了stl中的一些容器

vector:以我的理解是为一个数组动态分配内存的一个东东

然后就是栈和队列

首先是栈,先进后出

然后是队列,先进先出

 然后看了一个例题

//vector的应用
#include<iostream>
#include<stack>
#include<queue>
//栈和队列
using namespace std;
queue<int>q;
void work(int size, int deep)//数组大小和轮数
{
	if (q.size() <= 3)
	{
		return;
	}
	if (deep % 2 == 1)//1-2报数
	{
		int cnt = 0;
		for (int i = 1; i <= size; i++)
		{
			cnt++;
			if (cnt == 2)
			{
				q.pop();//报到二出列
				cnt = 0;
			}
			else
			{
				q.push(q.front());//报到一回到队尾
				q.pop();

			}
		}
	}
	if (deep % 2 == 0)//1-3报数
	{
		int cnt = 0;
		for (int i = 1; i <= size; i++)
		{
			cnt++;
			if (cnt == 1||cnt==2)
			{
				q.push(q.front());
				q.pop();
			}
			else if (cnt == 3)
			{
				cnt = 0;
				q.pop();
			}
		}
	}
	work(q.size(), deep + 1);
}
int main()
{
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		q.push(i);
	}
	work(q.size(),1);
	while (!q.empty())
	{
		cout << q.front() << " ";
		q.pop();
	}
	return 0;
} 

 一开始不理解为什么两种情况都要出列,后来明白了不出列怎么排到后面去。。。。希望我以后看到这些还能懂。明天加油!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值