今天学了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;
}
一开始不理解为什么两种情况都要出列,后来明白了不出列怎么排到后面去。。。。希望我以后看到这些还能懂。明天加油!