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
と出力するようにしたいです。
-
ドドド素人4
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 の回数が多い場合の対応は?