へむへむ さんが書きました:これを型としてやらないといけないので...
どういうことでしょうか?
int idx; と int buf[10]: しか使ってはいけないということでしょうか?
それでは、main で 20個のデータを push できませんよ。
非常に効率の悪い方法ですが、とりあえずキューとして動くものを書いてみました。
コード:
#include <iostream>
using namespace std;
const int SIZE = 20;
int idx;
int buf[SIZE];
void empty() { idx = 0; }
void push(int v)
{
if (idx == SIZE)
cerr << "queue full\n";
else
buf[idx++] = v;
}
int pop()
{
int v = 0;
if (idx == 0)
cerr << "queue empty\n";
else {
v = buf[0];
idx--;
for (int i = 0; i < idx; i++)
buf[i] = buf[i+1];
}
return v;
}
int main()
{
empty();
int v;
for (int i = 0; i < 20; i++) {
cin >> v; push(v);
}
for (int i = 0; i < 20; i++)
cout << pop() << " ";
for (int i = 0; i < 20; i++) {
cin >> v; push(v);
}
for (int i = 0; i < 20; i++)
cout << pop() << " ";
cout << endl;
}