(C++)queの事についてです。
Posted: 2017年4月25日(火) 17:48
queをクラスとして実現したいのですが、
このmain関数を変えずに作るには
emptyやpushやpopなどはどうしらた良いのでしょうか...
このmain関数を変えずに作るには
emptyやpushやpopなどはどうしらた良いのでしょうか...
#include <iostream>
using namespace std;
class que {
public:
void empty() {}
void push(int v) {}
int pop() const { static int v; return ++v; }
};
int main()
{
que a, b;
int n, v;
cin >> n;
a.empty();
b.empty();
for (int i = 0; i < n; i++) {
cin >> v;
a.push(v);
cin >> v;
b.push(v);
}
for (int i = 0; i < n; i++) {
cout << a.pop() << endl;
cout << b.pop() << endl;
}
return 0;
}
ということは、私の解答でいいということですか?ドドド素人 さんが書きました:4↓
1 2 3 4 5 6 7 8
と入力したら、
1
2
3
4
5
6
7
8
と出力するようにしたいです。
#include <iostream>
using namespace std;
class que {
int b[100];
int i, o;
public:
void empty() { i = o = 0; }
void push(int v) { b[i++] = v; }
int pop() { return b[o++]; }
};
int main()
{
que a, b;
int n, v;
cin >> n;
a.empty();
b.empty();
for (int i = 0; i < n; i++) {
cin >> v;
a.push(v);
cin >> v;
b.push(v);
}
for (int i = 0; i < n; i++) {
cout << a.pop() << endl;
cout << b.pop() << endl;
}
return 0;
}
配列の範囲外参照の可能性が気になりませんか?ドドド素人 さんが書きました:何故ダメなのですか?!?!