queをクラスとして実現したいのですが、
このmain関数を変えずに作るには
emptyやpushやpopなどはどうしらた良いのでしょうか...
(C++)queの事についてです。
Re: (C++)queの事についてです。
que とは何ですか?
何をするものですか?
empty, push, pos は、どういう動作をすればいいのですか?
詳しく説明してください。
試しに、que をクラスとして実現してみました。
empty, push, pos をメソッドとして実装してみました。
main は、インデントだけを変えました。
実行結果
どういう入力に対して、どういう出力を期待していますか?
何をするものですか?
empty, push, pos は、どういう動作をすればいいのですか?
詳しく説明してください。
試しに、que をクラスとして実現してみました。
empty, push, pos をメソッドとして実装してみました。
main は、インデントだけを変えました。
#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;
}
Re: (C++)queの事についてです。
返信ありがとうございます。
4↓
1 2 3 4 5 6 7 8
と入力したら、
1
2
3
4
5
6
7
8
と出力するようにしたいです。
4↓
1 2 3 4 5 6 7 8
と入力したら、
1
2
3
4
5
6
7
8
と出力するようにしたいです。
Re: (C++)queの事についてです。
4↓
10 20 30 40 50 60 70 80
と入力したら、
10
20
30
40
50
60
70
80
というふうに、入力した数値通りのものを表示させたいです。
10 20 30 40 50 60 70 80
と入力したら、
10
20
30
40
50
60
70
80
というふうに、入力した数値通りのものを表示させたいです。
Re: (C++)queの事についてです。
ということは、私の解答でいいということですか?ドドド素人 さんが書きました:4↓
1 2 3 4 5 6 7 8
と入力したら、
1
2
3
4
5
6
7
8
と出力するようにしたいです。
そのプログラムを実行してみましたか?
Re: (C++)queの事についてです。
実行してみたのですが、
10 20 30 40 50 60 70 80
と入力しても
1
2
3
4
5
6
7
8
となってしまいます...
10 20 30 40 50 60 70 80
と入力しても
1
2
3
4
5
6
7
8
となってしまいます...
Re: (C++)queの事についてです。
これでどうでしょうか?
これはだめなんです。
何が問題だと思いますか?
#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;
}
何が問題だと思いますか?
Re: (C++)queの事についてです。
配列の範囲外参照の可能性が気になりませんか?ドドド素人 さんが書きました:何故ダメなのですか?!?!
push の回数より、pop の回数が多い場合の対応は?