- C++相談室 part112
919 :デフォルトの名無しさん[sage]:2014/06/06(金) 09:47:30.90 ID:y0bQ4ynG - C++のIteratorはhasNext()メソッドが無いじゃないっすか。
==演算子で何かと比べてhasNext()の代わりをいたすんですが、 比べるものが無いときはダミーの終端記号を用意するのですか? その時はクラス変数で用意するのかend()メソッドで用意するのかどちらですか?
|
- C++相談室 part112
922 :デフォルトの名無しさん[sage]:2014/06/06(金) 10:45:30.82 ID:y0bQ4ynG - iteratorが1 2 3 4 5 6 と順番に数字をある番号まで出す。
この時iteratorが1を出すときはiterator内部で2という情報を持ちnを出すときはn+1を持つ そしてiteratorはnを持つとき内部でnという情報を持つときに出力を終了する。
|
- C++相談室 part112
924 :デフォルトの名無しさん[sage]:2014/06/06(金) 10:56:56.76 ID:y0bQ4ynG - iteratorが1 2 3 4 5 6 と順番に数字をある番号まで出す。
この時iteratorが1を出すときはiterator内部で2という情報を持ちnを出すときはn+1を持つ そしてiteratorはnを出すとき内部でnという情報を持つときに出力を終了する。 calss it{ int a int b ... operator*(){ if(a==b) b=a return ++a; } };
|
- C++相談室 part112
925 :デフォルトの名無しさん[sage]:2014/06/06(金) 10:58:35.60 ID:y0bQ4ynG - iteratorが1 2 3 4 5 6 と順番に数字をある番号まで出す。
この時iteratorが1を出すときはiterator内部で2という情報を持ちnを出すときはn+1を持つ そしてiteratorはnを出すとき内部でnという情報を持つときに出力を終了する。 calss it{ int a int b ... operator*(){ if(a==b)return a; if(条件) b=a; else b=a+1; return ++a; } };
|
- C++相談室 part112
928 :デフォルトの名無しさん[sage]:2014/06/06(金) 11:02:23.73 ID:y0bQ4ynG - iteratorが1 2 3 4 5 6 と順番に数字をある番号まで出す。
この時iteratorが1を出すときはiterator内部で2という情報を持ちnを出すときはn+1を持つ そしてiteratorはnを出すとき内部でnという情報を持つときに出力を終了する。 calss it{ int a int b ... int operator*(){ if(a==b) return エラー;//これが実行されたら駄目 if(ある条件) b=a; else b=a+1; return ++a; } };
|
- C++相談室 part112
929 :デフォルトの名無しさん[sage]:2014/06/06(金) 11:06:46.34 ID:y0bQ4ynG - iteratorが1 2 3 4 5 6 と順番に数字をある番号まで出す。
この時iteratorが1を出すときはiterator内部で2という情報を持ちnを出すときはn+1を持つ そしてiteratorはnを出すとき内部でnという情報を持つときに出力を終了する。 calss it{ int a int b ... int operator*(){ if(a==b) return エラー;//これが実行されたら駄目 if(ある条件) b=a; else b=a+1; return a; } operator ++(略){++a;} };
|
- 「コンパイラ・スクリプトエンジン」相談室15
946 :デフォルトの名無しさん[sage]:2014/06/06(金) 11:15:49.36 ID:y0bQ4ynG - なるほど。
|
- C++相談室 part112
931 :デフォルトの名無しさん[sage]:2014/06/06(金) 11:25:15.82 ID:y0bQ4ynG - iteratorが1 2 3 4 5 6 と順番に数字をある番号まで出す。
この時iteratorが1を出すときはiterator内部で2という情報を持ちnを出すときはn+1を持つ そしてiteratorはnを出すとき内部でnという情報を持つときに出力を終了する。 calss it{ int a; int b; public: it():a(1),b(2){} bool hasNext(){if(a==b)return false;else return true;}//実装しない int operator*(){ if(a==b) return エラー;//これが実行されたら駄目 if(ある条件) b=a; else b=a+1; return a; } void operator++(){++a;} };
|
- C++相談室 part112
932 :デフォルトの名無しさん[sage]:2014/06/06(金) 11:37:55.25 ID:y0bQ4ynG - iteratorが1 2 3 4 5 6 と順番に数字をある番号まで出す。
この時iteratorが1を出すときはiterator内部で2という情報を持ちnを出すときはn+1を持つ そしてiteratorはnを出すとき内部でnという情報を持つときに出力を終了する。 calss it{ int a; int b; public: it():a(1),b(2){} bool hasNext(){if(a==b)return false;else return true;}//実装しない bool operator==(it& i){if(a==b)return false;else return true;}//実装するがiに入れるのが無駄 int operator*(){ if(a==b) return エラー;//これが実行されたら駄目 if(ある条件) b=a; else b=a+1; return a; } void operator++(){++a;} };
|
- C++相談室 part112
933 :デフォルトの名無しさん[sage]:2014/06/06(金) 11:43:38.96 ID:y0bQ4ynG - iteratorが1 2 3 4 5 6 と順番に数字をある番号まで出す。
この時iteratorが1を出すときはiterator内部で2という情報を持ちnを出すときはn+1を持つ そしてiteratorはnを出すとき内部でnという情報を持つときに出力を終了する。 calss it{ int a; int b; public: it():a(1),b(2){} bool hasNext(){if(a==b)return false;else return true;}//実装しない bool operator==(it& i){if(a==b)return false;else return true;}//実装するがiに入れるのが無駄 int operator*(){ if(a==b) return エラー;//これが実行されたら駄目 if(ある条件) b+=a; else b=a+2; return a; } void operator++(){++a;} };
|
- C++相談室 part112
934 :デフォルトの名無しさん[sage]:2014/06/06(金) 11:45:54.76 ID:y0bQ4ynG - iteratorが1 2 3 4 5 6 と順番に数字をある番号まで出す。
この時iteratorが1を出すときはiterator内部で2という情報を持ちnを出すときはn+1を持つ そしてiteratorはnを出すとき内部でnという情報を持つときに出力を終了する。 calss it{ int a; int b; public: it():a(1),b(2){} bool hasNext(){if(a==b)return false;else return true;}//実装しない bool operator==(it& i){if(a==b)return false;else return true;}//実装するがiに入れるのが無駄 int operator*(){ if(a==b) return エラー;//これが実行されたら駄目 return a; } void operator++(){ある条件?++b:b;++a;} };
|
- C++相談室 part112
935 :デフォルトの名無しさん[sage]:2014/06/06(金) 11:57:00.71 ID:y0bQ4ynG - iteratorが1 2 3 4 5 6 と順番に数字をある番号まで出す。
この時iteratorが1を出すときはiterator内部で2という情報を持ちnを出すときはn+1を持つ そしてiteratorはnを出すとき内部でnという情報を持つときに出力を終了する。 #include<cstdlib> calss it{ int a; int b; public: it():a(1),b(2){} bool hasNext(){if(a==b)return false;else return true;}//実装しない bool operator==(it& i){if(a==b)return false;else return true;}//実装するがiに入れるのが無駄 int operator*(){ if(a==b) return エラー;//これが実行されたら駄目 return a; } void operator++(){!(std::rand()%10)?++b:b;++a;} };
|
- C++相談室 part112
937 :デフォルトの名無しさん[sage]:2014/06/06(金) 12:15:22.39 ID:y0bQ4ynG - >>935が>>921への質問の答えです。
答えたので>>919への回答お願いします。
|
- C++相談室 part112
939 :デフォルトの名無しさん[sage]:2014/06/06(金) 12:38:45.55 ID:y0bQ4ynG - 使い方:
main(){ X x; for(it =x.begin();it==it;++it) //ここで*を使う } おかしくないですか==をhasNext()の代わりに使うとするとこうなるんですよ。 しかも右辺のitは何の意味もないんです。
|
- C++相談室 part112
940 :デフォルトの名無しさん[sage]:2014/06/06(金) 12:39:28.77 ID:y0bQ4ynG - 使い方:
main(){ X x; for(it i=x.begin();i==i;++it\) //ここで*を使う } おかしくないですか==をhasNext()の代わりに使うとするとこうなるんですよ。 しかも右辺のiは何の意味もないんです。
|
- C++相談室 part112
941 :デフォルトの名無しさん[sage]:2014/06/06(金) 12:39:54.05 ID:y0bQ4ynG - 使い方:
main(){ X x; for(it i=x.begin();i==i;++i) //ここで*を使う } おかしくないですか==をhasNext()の代わりに使うとするとこうなるんですよ。 しかも右辺のiは何の意味もないんです。
|
- C++相談室 part112
943 :デフォルトの名無しさん[sage]:2014/06/06(金) 12:45:25.46 ID:y0bQ4ynG - 使い方:
main(){ X x; for(it i=x.begin();!(i==i);++i) //ここで*を使う } おかしくないですか==をhasNext()の代わりに使うとするとこうなるんですよ。 しかも右辺のiは何の意味もないんです。
|
- C++相談室 part112
944 :デフォルトの名無しさん[sage]:2014/06/06(金) 12:51:46.51 ID:y0bQ4ynG - end()でダミーのiteratorを返せと?
・・・・・・・・・・・・ ファイナルアンサー?
|
- C++相談室 part112
947 :デフォルトの名無しさん[sage]:2014/06/06(金) 13:13:55.90 ID:y0bQ4ynG - hasNext持たせます。
algorithmで使うことも将来なさそうなので。
|