次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part130
http://mevius.2ch.net/test/read.cgi/tech/1490917669/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.100【環境依存OK】
http://echo.2ch.net/test/read.cgi/tech/1478440682/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
-
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C++相談室 part131 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 3b96-ov1m)
2017/07/29(土) 11:28:28.97ID:o30VDF4g0374デフォルトの名無しさん (ワッチョイ feea-w74m)
2017/08/28(月) 02:11:44.25ID:nC18rNgy0 実務でコード書く人=Windowフォームにボタンを乗せる仕事の人
375はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0a15-2x4P)
2017/08/28(月) 03:06:17.85ID:yPLR2tUq0 ライブラリの蓄積もあるからさ。 負債の蓄積とのバランスだよねー。
ときどき Go とか Rust とかみたいなのが出てきて一新してくれりゃいいんだけど、
C++ はともかく C はいつまでも死なない気がする。
ときどき Go とか Rust とかみたいなのが出てきて一新してくれりゃいいんだけど、
C++ はともかく C はいつまでも死なない気がする。
376デフォルトの名無しさん (ワッチョイ cac5-5mwo)
2017/08/28(月) 07:31:44.71ID:GiFa6ZsP0 別に新機能のほしいものリストを無秩序に書き連ねたわけではないもん;;
C++はSimulaの代替品として登場した時点から実行時パフォーマンスの追求を意識していたし、
理解しやすさなら他の言語を選択すればよい昨今においては
特に実行時パフォーマンスの追求こそがC++の存在意義として強調されるべき
テンプレートによるメタプログラミングに最高の効率を阻害する穴があれば塞がれねばならないし、
最適化がほっといたら中途半端にとどまるケースには尻を叩くキーワードが追加されねばならないし、
そのときどきのアーキテクチャーの詳細に立ち入ってでもあらゆる実行時パフォーマンス追求手段が
プログラマに提示されねばならない
インテリセンスがまともに働かないとかテンプレートの分割コンパイルがもはや完成しないバベルの塔だとか
言語規格が変わり続けて解説書が分厚くなる一方だといった側面の不調法はそうであってこそ許容される、
C++はSimulaの代替品として登場した時点から実行時パフォーマンスの追求を意識していたし、
理解しやすさなら他の言語を選択すればよい昨今においては
特に実行時パフォーマンスの追求こそがC++の存在意義として強調されるべき
テンプレートによるメタプログラミングに最高の効率を阻害する穴があれば塞がれねばならないし、
最適化がほっといたら中途半端にとどまるケースには尻を叩くキーワードが追加されねばならないし、
そのときどきのアーキテクチャーの詳細に立ち入ってでもあらゆる実行時パフォーマンス追求手段が
プログラマに提示されねばならない
インテリセンスがまともに働かないとかテンプレートの分割コンパイルがもはや完成しないバベルの塔だとか
言語規格が変わり続けて解説書が分厚くなる一方だといった側面の不調法はそうであってこそ許容される、
377デフォルトの名無しさん (ワッチョイ cac5-5mwo)
2017/08/28(月) 07:36:18.26ID:GiFa6ZsP0 機械の方が人間より賢くプログラムするようになってアセンブラが滅びたら
Cも滅びる気がする
Cも滅びる気がする
378デフォルトの名無しさん (ワッチョイ ad09-tVhQ)
2017/08/28(月) 07:36:46.75ID:96+DvSIX0 ウニファイドコールシンタックスを直ちに入れるのです。
コードサジェストが爆発してもいいじゃない。
コードサジェストが爆発してもいいじゃない。
379デフォルトの名無しさん (ワッチョイ ad09-tVhQ)
2017/08/28(月) 07:43:38.48ID:96+DvSIX0380デフォルトの名無しさん (ワッチョイ cac5-5mwo)
2017/08/28(月) 07:58:00.50ID:GiFa6ZsP0 中間言語とか3番地コードと条件判断とgotoで必要にしてほぼ十分なのでは…
381デフォルトの名無しさん (ワッチョイ ad09-tVhQ)
2017/08/28(月) 08:00:37.13ID:96+DvSIX0382デフォルトの名無しさん (ブーイモ MMb9-E8CI)
2017/08/28(月) 12:49:34.85ID:0HhHgrwNM ちょっとしたコーディングミスで、以下の簡易コードように書いてしまって、ハマったのですが、コンパイルエラーにならなかった事に驚きました。
string a(何らかの文字列);
string s = s.replace(置換指示); //a.replace() と書こうとした。
コピーコンストラクトの右辺に、構築中(?)の自分自身を使ってしまったと言う事なのですが、これは規格上合法なのでしょうか?
string a(何らかの文字列);
string s = s.replace(置換指示); //a.replace() と書こうとした。
コピーコンストラクトの右辺に、構築中(?)の自分自身を使ってしまったと言う事なのですが、これは規格上合法なのでしょうか?
383デフォルトの名無しさん (ブーイモ MMb9-E8CI)
2017/08/28(月) 12:59:59.78ID:0HhHgrwNM ↑のサンプル貼っておきます。
https://ideone.com/X4ILlf
https://ideone.com/X4ILlf
384デフォルトの名無しさん (ワッチョイ ad09-tVhQ)
2017/08/28(月) 13:04:19.26ID:96+DvSIX0 x^=x でゼロになるんだっけ。
一応昔からある文法だけど。
一応昔からある文法だけど。
385デフォルトの名無しさん (スップ Sdca-vlGO)
2017/08/28(月) 16:57:17.16ID:KK7lC/68d >>384
それの使い道がよくわからん
コンパイラと環境によっては x=0 より速かったりとか?
即値は全て名前を付けなきゃいけないとかいう糞コーディングルールの回避とか?
volatileをつけて、
ダミーリードと0クリアを1文で書けるとか?
思い付くのはこのくらい
それの使い道がよくわからん
コンパイラと環境によっては x=0 より速かったりとか?
即値は全て名前を付けなきゃいけないとかいう糞コーディングルールの回避とか?
volatileをつけて、
ダミーリードと0クリアを1文で書けるとか?
思い付くのはこのくらい
386デフォルトの名無しさん (ワッチョイ 4acd-Xu5m)
2017/08/28(月) 17:22:45.55ID:3VrqihWx0 コンストラクタが実行される前なのでオブジェクトの内容は不定だろうし
不定なオブジェクトにも適切にアクセスする場合なら合法かもしれない
ただ不定な変数を使って何かしようとすると途端に undefined behavior 地雷を
踏むことが多いのでそこで頑張っても実りがあるとも思えないけど
不定なオブジェクトにも適切にアクセスする場合なら合法かもしれない
ただ不定な変数を使って何かしようとすると途端に undefined behavior 地雷を
踏むことが多いのでそこで頑張っても実りがあるとも思えないけど
387デフォルトの名無しさん (ワッチョイ c61c-9BKz)
2017/08/28(月) 17:43:39.28ID:+dyqlMtL0 >>385
アセンブラでよく使う xor eax,eax を逆コンパイルするとアレになる
アセンブラでよく使う xor eax,eax を逆コンパイルするとアレになる
388デフォルトの名無しさん (ワッチョイ ca9f-tmrH)
2017/08/28(月) 17:52:50.38ID:eeKFZJ460 のっぷぁ
389デフォルトの名無しさん (ワッチョイ ca9f-tmrH)
2017/08/28(月) 17:54:52.47ID:eeKFZJ460 or eax,eax だろバカチン
390片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdea-sbdr)
2017/08/28(月) 18:02:16.04ID:HJX32+mcd xor eax,eaxがゼロクリアで、
or eax,eaxが何もしない。
or eax,eaxが何もしない。
391デフォルトの名無しさん (ワッチョイ b500-vlGO)
2017/08/28(月) 18:08:57.91ID:Wq6HqE7w0 さすがにPC系コンパイラで
0クリアを最適化しないのは無いかと
xor eax, eax は0イディオムとか言って、
普通のxorとは微妙に扱いが異なる
昔は sub ax, axより xor ax, axの方が微妙に速かったりした
今はフラグ以外は同じ
>>390
何もしないわけじやない
ちゃんとフラグが変わる
0クリアを最適化しないのは無いかと
xor eax, eax は0イディオムとか言って、
普通のxorとは微妙に扱いが異なる
昔は sub ax, axより xor ax, axの方が微妙に速かったりした
今はフラグ以外は同じ
>>390
何もしないわけじやない
ちゃんとフラグが変わる
392デフォルトの名無しさん (ワッチョイ 4af0-vgeI)
2017/08/28(月) 18:38:50.00ID:7lbHEj3b0 ttp://www.st.rim.or.jp/~nkomatsu/premicro/corezoom2.JPG
昔とはこういうスゴイ編み物の時代ですかね
昔とはこういうスゴイ編み物の時代ですかね
393デフォルトの名無しさん (ワッチョイ b500-vlGO)
2017/08/28(月) 19:05:01.12ID:Wq6HqE7w0 だね
394片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdea-sbdr)
2017/08/28(月) 19:10:04.94ID:HJX32+mcd 編み物だって意味のあるつまらないことの積み重ねで実現されている。
プログラミングだって多分同じ。
プログラミングだって多分同じ。
395デフォルトの名無しさん (スップ Sdca-vlGO)
2017/08/28(月) 19:36:30.92ID:KK7lC/68d コルモゴロフの最小プログラムに対しても同じ事が言える?
396デフォルトの名無しさん (ブーイモ MMb9-E8CI)
2017/08/28(月) 19:37:58.17ID:y0vE8H3MM397デフォルトの名無しさん (オッペケ Sr6d-9IFt)
2017/08/28(月) 19:41:20.09ID:MWmJNebXr398デフォルトの名無しさん (スップ Sdca-vlGO)
2017/08/28(月) 19:41:46.31ID:KK7lC/68d 別のsが定義されてるとか
399デフォルトの名無しさん (ワッチョイ 2aef-vgeI)
2017/08/28(月) 19:58:41.88ID:rn9GWLpv0400デフォルトの名無しさん (スップ Sdca-vlGO)
2017/08/28(月) 20:21:02.23ID:KK7lC/68d x86の話をしてるわけだけど
401デフォルトの名無しさん (スップ Sdca-vlGO)
2017/08/28(月) 20:22:04.01ID:KK7lC/68d eaxなんてレジスタ、他にあるか?
402デフォルトの名無しさん (ワッチョイ cac5-5mwo)
2017/08/28(月) 20:48:55.97ID:GiFa6ZsP0 inline void zero_clear(int& x) { x ^= x; }
403デフォルトの名無しさん (ワッチョイ cac5-5mwo)
2017/08/28(月) 20:55:31.76ID:GiFa6ZsP0 3E AF
404デフォルトの名無しさん (アウアウウー Sa91-WCa5)
2017/08/28(月) 22:22:13.51ID:Na7nyTMka そう言えば64bitアセンブラ勉強してた時ウェブで64bitレジスタでxor rax raxってするより、64bitプログラムでもxor eax eaxってした方が機械語短いって書いてたな。
アセンブラ上は同じ長さだけど、機械語上は64bit命令の方が長い&32bitレジスタへの操作は自動的に64bitレジスタの上位bitがゼロクリアされるから同じ動きになるとかなんとか。
キャッシュに入るコードが増えるから速くもなるらしい。
アセンブラ上は同じ長さだけど、機械語上は64bit命令の方が長い&32bitレジスタへの操作は自動的に64bitレジスタの上位bitがゼロクリアされるから同じ動きになるとかなんとか。
キャッシュに入るコードが増えるから速くもなるらしい。
405デフォルトの名無しさん (ワッチョイ b500-vlGO)
2017/08/28(月) 22:33:21.77ID:Wq6HqE7w0 intel公式のドキュメントに書いてあるレベルだから
普通のコンパイラは当然そういうコードを吐くと思うよ
普通のコンパイラは当然そういうコードを吐くと思うよ
406デフォルトの名無しさん (ワッチョイ 4a19-vgeI)
2017/08/29(火) 00:27:36.33ID:AHYNkT+D0 OpenMPIを用いたプロセス並列コードのプロファイルを取りたいんですが、
gprofだとテンプレートがごちゃごちゃしててすごく見にくいです。
何か勧めなフリーのプロファイラはないでしょうか?
gprofだとテンプレートがごちゃごちゃしててすごく見にくいです。
何か勧めなフリーのプロファイラはないでしょうか?
407デフォルトの名無しさん (ワッチョイ 3e23-tLez)
2017/08/29(火) 01:49:03.35ID:skpcufF70 座標を動的配列で格納していき、
(50,50),(100,100) //直線1の座標
(30,30),(70,70) //直線2の座標
↑こんな感じに直線の数だけ座標の組み合わせが増えます。
この上から2個の座標の組み合わせ、
つまり座標4点を使い交点を計算するプログラムを作ろうとしています。
計算式を作っていく際にfor文を使っているのですが
1つ目の座標の組み合わせと2つ目の座標の組み合わせを計算式内で使うので
二重ループがいいかと思い作ろうとしましたが動的配列での二重ループの作り方が分かりません。
助けて頂けないでしょうか…。
長々と申し訳ありません。
(50,50),(100,100) //直線1の座標
(30,30),(70,70) //直線2の座標
↑こんな感じに直線の数だけ座標の組み合わせが増えます。
この上から2個の座標の組み合わせ、
つまり座標4点を使い交点を計算するプログラムを作ろうとしています。
計算式を作っていく際にfor文を使っているのですが
1つ目の座標の組み合わせと2つ目の座標の組み合わせを計算式内で使うので
二重ループがいいかと思い作ろうとしましたが動的配列での二重ループの作り方が分かりません。
助けて頂けないでしょうか…。
長々と申し訳ありません。
408デフォルトの名無しさん (ワッチョイ ca4c-oKtA)
2017/08/29(火) 02:17:37.67ID:On05DpTS0 >>396
void* p = &p;
↑こういうのは受け入れないといけない一方で >382 を NG とするための境目を
ちゃんと定めてコンパイラ実装するのはめんどくさそうだなと思う。
頻繁に踏む問題でも無くてコンパイラ実装者がそこに注力する動機も薄そうだし。
void* p = &p;
↑こういうのは受け入れないといけない一方で >382 を NG とするための境目を
ちゃんと定めてコンパイラ実装するのはめんどくさそうだなと思う。
頻繁に踏む問題でも無くてコンパイラ実装者がそこに注力する動機も薄そうだし。
409デフォルトの名無しさん (ワッチョイ c6ba-E8CI)
2017/08/29(火) 02:27:26.09ID:KA5Uf3Ix0410デフォルトの名無しさん (ワッチョイ feea-w74m)
2017/08/29(火) 02:33:36.21ID:vHDkbJz50411デフォルトの名無しさん (ワッチョイ cac5-5mwo)
2017/08/29(火) 22:17:26.88ID:R/tQJHqT0 Iteratorで2重ループするやり方がわからな
いとか?
いとか?
412デフォルトの名無しさん (ワッチョイ 3e23-tLez)
2017/08/30(水) 00:38:16.23ID:95r+Hm0D0 はい
iteratorでの二重ループが分かりません。
x1={1,2,3}
x2={4,5,6}
1*4 , 1*5 , 1*6
2*4 , 2*5 , 2*6
3*4 , 3*5 , 3*6
といったような計算が出来るプログラムを動的配列でつくりたいです。
iteratorでの二重ループが分かりません。
x1={1,2,3}
x2={4,5,6}
1*4 , 1*5 , 1*6
2*4 , 2*5 , 2*6
3*4 , 3*5 , 3*6
といったような計算が出来るプログラムを動的配列でつくりたいです。
413片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdea-sbdr)
2017/08/30(水) 01:26:58.11ID:KDhhphrhd it->begin(), it->end()
414デフォルトの名無しさん (ワッチョイ ca9f-tmrH)
2017/08/30(水) 01:55:32.89ID:0ZIBVCLk0 基礎の基礎が判ってないってパターンか
415デフォルトの名無しさん (ワッチョイ cd9f-GSIY)
2017/08/30(水) 02:05:27.07ID:J1aJRQDA0416デフォルトの名無しさん (ワッチョイ 4acd-Xu5m)
2017/08/30(水) 05:26:39.94ID:27CMeyKU0417デフォルトの名無しさん (ワッチョイ 2a89-GW8T)
2017/08/30(水) 06:45:43.57ID:3iEZIBUv0 >>413
itがイテレータならおかしいな
itがイテレータならおかしいな
418デフォルトの名無しさん (ワッチョイ ca9f-tmrH)
2017/08/30(水) 07:05:47.51ID:0ZIBVCLk0 いてれたのいてれた
419デフォルトの名無しさん (ワッチョイ 3e23-tLez)
2017/08/30(水) 08:57:17.67ID:95r+Hm0D0420デフォルトの名無しさん (アウアウカー Sa85-GW8T)
2017/08/30(水) 09:07:19.16ID:Nr6Jv4Sva >>419
つまり分からないのはイテレータのループそのもので、二重ループは関係ないということかな?
つまり分からないのはイテレータのループそのもので、二重ループは関係ないということかな?
421デフォルトの名無しさん (ワッチョイ 4af0-vgeI)
2017/08/30(水) 09:12:14.51ID:y1raZQAZ0 perlのfor my $elem (@array){をやるのに何年懸ったんだろうといつも思う
422デフォルトの名無しさん (ワッチョイ 3e23-tLez)
2017/08/30(水) 09:13:52.07ID:95r+Hm0D0423デフォルトの名無しさん (ワッチョイ ad09-tVhQ)
2017/08/30(水) 10:44:38.77ID:VpX1ZCKl0 イテレータは繰り返しを前提としているので基本的に進むと戻るの操作しか提供しない。ランダムアクセスっていうのもなくはないけどね。
it++で前進、it--で後退。操作して、Container.begin()と同じ値なら先頭を、Continer.end()と同じ値になったらそのコンテナの末端を指している。
基本的にはポインタを抽象化したものだからポインタの操作を思い出すと少しわかりが早い。
it++で前進、it--で後退。操作して、Container.begin()と同じ値なら先頭を、Continer.end()と同じ値になったらそのコンテナの末端を指している。
基本的にはポインタを抽象化したものだからポインタの操作を思い出すと少しわかりが早い。
424デフォルトの名無しさん (ワッチョイ 29e4-xRau)
2017/08/30(水) 12:11:28.40ID:NGfIYJwv0425デフォルトの名無しさん (ワッチョイ feea-w74m)
2017/08/30(水) 12:24:58.79ID:PTG1CRxV0 ポインタではループ書けませんって
なんかつき合う気失せるぐらい初心者やね
いやアンタが悪い訳じゃないんやが
なんかつき合う気失せるぐらい初心者やね
いやアンタが悪い訳じゃないんやが
426デフォルトの名無しさん (ワッチョイ c61c-9BKz)
2017/08/30(水) 12:35:06.14ID:BJd10UjW0 >>419
それ、end()が何を返しているかとか、
連続領域でないのにポインタを返しているとか
そういう系の問題じゃね?
あと「イテレータのループ」というのが
range-based-forだったりすると
x[i+1]はそもそも無理だぞ
それ、end()が何を返しているかとか、
連続領域でないのにポインタを返しているとか
そういう系の問題じゃね?
あと「イテレータのループ」というのが
range-based-forだったりすると
x[i+1]はそもそも無理だぞ
427デフォルトの名無しさん (ワッチョイ 3e23-tLez)
2017/08/30(水) 13:45:30.49ID:95r+Hm0D0 みなさんありがとうございます!
もっと勉強して出直してきます
もっと勉強して出直してきます
428デフォルトの名無しさん (ワッチョイ 0946-R9zi)
2017/08/30(水) 20:58:46.39ID:UeWdSpDY0 Cとjavaの基礎やったから基本の文法とオブジェクト指向の触りみたいな部分だけわかるんだけどこの状態でテンプレートとかの勉強初めていいの?
あそこらへん急に難しくなるイメージあるけど他に先にやるべきこととかあります?
あとそういう人におぬぬめの本とかもしあったら教えてくだされ
あそこらへん急に難しくなるイメージあるけど他に先にやるべきこととかあります?
あとそういう人におぬぬめの本とかもしあったら教えてくだされ
429デフォルトの名無しさん (ワッチョイ 2aef-M52T)
2017/08/30(水) 21:26:25.83ID:it2NMgLA0430デフォルトの名無しさん (オッペケ Sr6d-9IFt)
2017/08/30(水) 22:54:34.30ID:T8zS0A0mr >x[i + 1] == *(x + i + 1)
はて、いったい何の言語の話だろうか
はて、いったい何の言語の話だろうか
431デフォルトの名無しさん (ワッチョイ ad7f-vgeI)
2017/08/30(水) 23:02:57.29ID:lE/piHRT0 突っ込みたいことがあるならはっきり指摘すれば?
432デフォルトの名無しさん (ワッチョイ c300-sFCB)
2017/08/31(木) 02:07:06.34ID:Ce9FMcgb0433デフォルトの名無しさん (ワッチョイ c300-sFCB)
2017/08/31(木) 02:08:47.68ID:Ce9FMcgb0434デフォルトの名無しさん (ワッチョイ 6fea-G83I)
2017/08/31(木) 02:11:16.28ID:JJLmvwvW0435デフォルトの名無しさん (ワッチョイ ff9f-QSye)
2017/08/31(木) 02:40:29.14ID:ZosLKwRR0 なぜにイテレータでやろうとするのか
valarray使えばこんなの即効だろ
valarray使えばこんなの即効だろ
436デフォルトの名無しさん (ワッチョイ 6f65-b8Mh)
2017/08/31(木) 05:33:17.64ID:5oi4R35S0 あのー、このスレに限らずどこもなんだけどさ、
初心者をケナスくせは、やめた方が良いよ。
ちょっと知ってる者の傾向だね。
ちょっと自分が物事を知ってるから、
「自分らが、上だ。と、知らない者をけなす癖」が多大に有るよね。
本当に知ってる者は、初心者にもやさしく教えてあげるよ。
初心者をケナスくせは、やめた方が良いよ。
ちょっと知ってる者の傾向だね。
ちょっと自分が物事を知ってるから、
「自分らが、上だ。と、知らない者をけなす癖」が多大に有るよね。
本当に知ってる者は、初心者にもやさしく教えてあげるよ。
437デフォルトの名無しさん (オッペケ Src7-mvsT)
2017/08/31(木) 05:41:23.80ID:xNENwSVur438デフォルトの名無しさん (ドコグロ MM47-2CmY)
2017/08/31(木) 06:49:36.91ID:L0jWKquXM 知らない者を貶す気はないけど知ったかの頓珍漢な指摘は全力でバカにする
439デフォルトの名無しさん (ワッチョイ 33e4-p7en)
2017/08/31(木) 06:52:13.92ID:8V5/tdJ10 また規格に自信ある奴が日本語読めてないな
日本語の文脈を理解できるようになってから発言してくれ
日本語の文脈を理解できるようになってから発言してくれ
440デフォルトの名無しさん (ワッチョイ c300-sFCB)
2017/08/31(木) 07:01:04.95ID:Ce9FMcgb0441デフォルトの名無しさん (ワッチョイ cfd7-j2rg)
2017/08/31(木) 09:29:52.97ID:F7+XKf5b0 はっきり指摘できないのなら謙虚に発言した方がいい
442デフォルトの名無しさん (スッップ Sd1f-gM2o)
2017/08/31(木) 10:24:10.68ID:DHTk7O50d 全くその通りだよね
ポインタ滅ぶべしとか思ってるのかも知れないけど、初心者はまずイテレータを理解してその後
ポインタを学べば良いなんてプロセスは効果的とは限らないし、個人的には無理があると思う。
ポインタ滅ぶべしとか思ってるのかも知れないけど、初心者はまずイテレータを理解してその後
ポインタを学べば良いなんてプロセスは効果的とは限らないし、個人的には無理があると思う。
443デフォルトの名無しさん (ワッチョイ 33e4-p7en)
2017/08/31(木) 10:46:40.85ID:8V5/tdJ10 C++使ってて初心者は隠蔽された中身を理解しなくていいとか本気で思ってる奴いるのかよ
それにイテレータはポインタのような操作ができるインターフェイスなのでポインタを理解してることは前提となっている
それにイテレータはポインタのような操作ができるインターフェイスなのでポインタを理解してることは前提となっている
444デフォルトの名無しさん (ドコグロ MM1f-CPXF)
2017/08/31(木) 12:26:30.87ID:+APqOuiHM 逆だよ。初心者は隠蔽された中身を理解しなくていい範囲と使うべき。
初心者に教えるときも注意しなきゃいかん。
初心者に教えるときも注意しなきゃいかん。
445デフォルトの名無しさん (スップ Sd1f-sFCB)
2017/08/31(木) 12:41:58.03ID:aPsP1NJ+d >>443
イテレターを使う上で、ポインタを知らないと何が問題?
イテレターを使う上で、ポインタを知らないと何が問題?
446デフォルトの名無しさん (ワッチョイ cf1c-PLFS)
2017/08/31(木) 12:45:17.10ID:JYM1pg890 「あたかもポインタのように振る舞うオブジェクト」を使うにあたって
そもそもポインタを知らないことの何が問題か本気でわからないのか?
そもそもポインタを知らないことの何が問題か本気でわからないのか?
447デフォルトの名無しさん (ドコグロ MM1f-CPXF)
2017/08/31(木) 14:20:58.17ID:+APqOuiHM イテレーターのコンセプト、理解してる?
ポインタのように振る舞う、じゃないよ。
ポインタのように振る舞う、じゃないよ。
448デフォルトの名無しさん (ワッチョイ 6309-8f0a)
2017/08/31(木) 14:38:31.89ID:BoCBvGLq0 イテレーションすることを目的にしてるけど、
ポインタもイテレータの機能を持ってるからポインタを想像するとわかりやすいっていうのはある。
ポインタもイテレータの機能を持ってるからポインタを想像するとわかりやすいっていうのはある。
449デフォルトの名無しさん (ワッチョイ cf1c-PLFS)
2017/08/31(木) 15:09:44.78ID:JYM1pg890 >>447
どっかから引用したわけじゃないんで
そういうフレーズにはなってないだろうなあ
ポインタの使い方に、イテレータの使い方を似せてあるのは
誰の目にも明らかなんだが、おまえだけ違うのか?
重箱の隅でない説明がもしできるなら拝聴したいぜ
どっかから引用したわけじゃないんで
そういうフレーズにはなってないだろうなあ
ポインタの使い方に、イテレータの使い方を似せてあるのは
誰の目にも明らかなんだが、おまえだけ違うのか?
重箱の隅でない説明がもしできるなら拝聴したいぜ
450デフォルトの名無しさん (ワッチョイ 33e4-p7en)
2017/08/31(木) 15:25:08.02ID:8V5/tdJ10 ポインタに似せるというコンセプトではないので、ポインタと同じ構文で操作できてもポインタとは何の関係もありませ〜んwwww
そんな話してねえだろコミュ障か?
そんな話してねえだろコミュ障か?
451デフォルトの名無しさん (ワントンキン MM9f-KFeJ)
2017/08/31(木) 16:21:10.10ID:N6KLaE+9M イテレータの使い方がポインタの使い方に似せてある…?
もしかして、イテレータの意味わかってないんじゃないか??
もしかして、イテレータの意味わかってないんじゃないか??
452デフォルトの名無しさん (ワッチョイ cf1c-PLFS)
2017/08/31(木) 16:22:24.21ID:JYM1pg890 あ、ふじこったw
そのザマ見て気が済んだ
そのザマ見て気が済んだ
453デフォルトの名無しさん (ワッチョイ 33e4-p7en)
2017/08/31(木) 16:48:47.10ID:8V5/tdJ10 >>451
はいはい
イテレータはポインタの操作方法と互換性がある
ただし静的配列やvectorで使われているランダムアクセスイテレータはすべての操作をサポートしているが、それ以外ではサポートしていない操作もあるので注意
とまで補足を入れたらいいんだろ
配列の話をしていたはずなのにアスペはすぐ話の腰折るから困る
はいはい
イテレータはポインタの操作方法と互換性がある
ただし静的配列やvectorで使われているランダムアクセスイテレータはすべての操作をサポートしているが、それ以外ではサポートしていない操作もあるので注意
とまで補足を入れたらいいんだろ
配列の話をしていたはずなのにアスペはすぐ話の腰折るから困る
454デフォルトの名無しさん (スッップ Sd1f-gM2o)
2017/08/31(木) 16:53:43.88ID:DHTk7O50d むしろ初心者ほど中身を知りたがるもの。
イテレータなんて実装が隠蔽されてるわけじゃなし、知った上で抽象化したらこうなるってのが妥当な方向だ。
コンパイラがやる最適化等とは別の話だ。
イテレータなんて実装が隠蔽されてるわけじゃなし、知った上で抽象化したらこうなるってのが妥当な方向だ。
コンパイラがやる最適化等とは別の話だ。
455デフォルトの名無しさん (スッップ Sd1f-gM2o)
2017/08/31(木) 16:55:03.46ID:DHTk7O50d だいたいポインタの理解なんて義務教育レベルだしな。
456デフォルトの名無しさん (ドコグロ MM1f-CPXF)
2017/08/31(木) 16:55:37.94ID:+APqOuiHM457デフォルトの名無しさん (ワッチョイ cf1c-PLFS)
2017/08/31(木) 17:03:23.95ID:JYM1pg890 さあねえ
俺はポインタを知らんやつにイテレータを教えたことがない
それを馬鹿にしたければするがいい
じゃあ、あんたはどうやって教えたのか、こっちが聞きたい
俺はポインタを知らんやつにイテレータを教えたことがない
それを馬鹿にしたければするがいい
じゃあ、あんたはどうやって教えたのか、こっちが聞きたい
458デフォルトの名無しさん (ワッチョイ 33e4-p7en)
2017/08/31(木) 17:29:30.90ID:8V5/tdJ10 >>456
その場でイテレータを使うだけなら必要ないが、それでは何故か動くおまじないになるだけ
マンツーマンじゃあるまいし基礎を理解していない者に教えるのは疲れるし両者にとって不毛だ
複雑な実装のイテレータを理解しろともコンピュータの仕組みを理解しろとも言ってないし
キーワードだけ見つけて何がなんだか分からない助けてくれと言う前に簡単な基礎からやれという指摘はおかしいか?
その場でイテレータを使うだけなら必要ないが、それでは何故か動くおまじないになるだけ
マンツーマンじゃあるまいし基礎を理解していない者に教えるのは疲れるし両者にとって不毛だ
複雑な実装のイテレータを理解しろともコンピュータの仕組みを理解しろとも言ってないし
キーワードだけ見つけて何がなんだか分からない助けてくれと言う前に簡単な基礎からやれという指摘はおかしいか?
459デフォルトの名無しさん (ワントンキン MM9f-KFeJ)
2017/08/31(木) 17:43:42.94ID:N6KLaE+9M >>453
ちがうちがう
イテレータっていうのは繰り返しの抽象化だから、ランダムアクセスだのなんだのってのはおまけ
ポインタっていうのはアドレスに少し機能を付け加えたもの
リストのイテレータはリストのポインタと関係ないが、リストの特別版である配列のイテレータは配列のポインタと互換がある
だから、イテレータの操作とポインタの操作に互換があるというのは間違えてる
人に教える前にデータ構造について一から勉強しなおしたほうがいいのでは?
ちがうちがう
イテレータっていうのは繰り返しの抽象化だから、ランダムアクセスだのなんだのってのはおまけ
ポインタっていうのはアドレスに少し機能を付け加えたもの
リストのイテレータはリストのポインタと関係ないが、リストの特別版である配列のイテレータは配列のポインタと互換がある
だから、イテレータの操作とポインタの操作に互換があるというのは間違えてる
人に教える前にデータ構造について一から勉強しなおしたほうがいいのでは?
460デフォルトの名無しさん (ワッチョイ cf1c-PLFS)
2017/08/31(木) 17:59:29.96ID:JYM1pg890 ポインタに限ったことではなく、イテレータでもハンドルでも
「何が」「どこにある」という情報を持つもの、という概念を説明するとき
ポインタが最も直接的な実装となっているので
具体的なアドレス値を図に書いて説明できるし
復習するにも実測値でその図を書いてみることができるし
デバッガでも関係性を追ってみることが出来る
++で何をどう増やしているのか、比較とはどういうことかも
実測値から直感しやすい
そして、それで憶えたことがvectorのイテレータでならとりあえず通用する
そこからlistだとかistream_iteratorだとかへと差分学習で進めば楽だし
algorithmもポインタさえ知ってればとりあえず使えて
そこからまた差分学習でイテレータで使う場合を憶えれば楽という経験則
何か間違っているかね?
「何が」「どこにある」という情報を持つもの、という概念を説明するとき
ポインタが最も直接的な実装となっているので
具体的なアドレス値を図に書いて説明できるし
復習するにも実測値でその図を書いてみることができるし
デバッガでも関係性を追ってみることが出来る
++で何をどう増やしているのか、比較とはどういうことかも
実測値から直感しやすい
そして、それで憶えたことがvectorのイテレータでならとりあえず通用する
そこからlistだとかistream_iteratorだとかへと差分学習で進めば楽だし
algorithmもポインタさえ知ってればとりあえず使えて
そこからまた差分学習でイテレータで使う場合を憶えれば楽という経験則
何か間違っているかね?
461デフォルトの名無しさん (ワッチョイ cf1c-PLFS)
2017/08/31(木) 18:04:14.09ID:JYM1pg890 誰かさんみたいに、ちがうちがうと自分の繊細さに酔うやつが
学習者の思考を丹念に潰しやる気を削いでいく有害な騒音源となる
語学の先生にもいるだろ?
学習者の思考を丹念に潰しやる気を削いでいく有害な騒音源となる
語学の先生にもいるだろ?
462はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff15-X0kF)
2017/08/31(木) 18:05:11.71ID:Ev17QaWq0 イテレータはポインタに似せたというよりは、部分的にポインタと共通のインターフェイスに抽象化されたものであって、
C にも有ったポインタという機能と新しい機能を無理なく (?) 統合するアイデアでしょ。
だから、どちらが先にありきと言えるものではないけども、
大抵の C++ 入門書だと時代的に早く出現したポインタを先に説明するのが一般的だと思うし、
初心者がその流れに沿わない学習をしているのだとしたら
体系的に学ぼうとせず場当たり的に調べてるんじゃないのと疑うって話じゃないかな。
前提がちゃんと出来上がってない人の質問にきちんと答えるのは無理だよ。
だからこれとこれを先にやった方がいいよっていうのは誠実な回答だよ。
C にも有ったポインタという機能と新しい機能を無理なく (?) 統合するアイデアでしょ。
だから、どちらが先にありきと言えるものではないけども、
大抵の C++ 入門書だと時代的に早く出現したポインタを先に説明するのが一般的だと思うし、
初心者がその流れに沿わない学習をしているのだとしたら
体系的に学ぼうとせず場当たり的に調べてるんじゃないのと疑うって話じゃないかな。
前提がちゃんと出来上がってない人の質問にきちんと答えるのは無理だよ。
だからこれとこれを先にやった方がいいよっていうのは誠実な回答だよ。
463デフォルトの名無しさん (ワッチョイ 33e4-p7en)
2017/08/31(木) 18:10:20.20ID:8V5/tdJ10464デフォルトの名無しさん (ワッチョイ cf1c-PLFS)
2017/08/31(木) 18:24:58.66ID:JYM1pg890 >>462
は? イテレータは少なくとも1993年以後にできたもので
ポインタはBにもあったもので、どちらが先にありきは明白だ
イテレータの設計にあたりポインタを意識しなかったなんて珍説を唱えるには膨大な説明がいると思うが
おまえやってみるか?
は? イテレータは少なくとも1993年以後にできたもので
ポインタはBにもあったもので、どちらが先にありきは明白だ
イテレータの設計にあたりポインタを意識しなかったなんて珍説を唱えるには膨大な説明がいると思うが
おまえやってみるか?
465デフォルトの名無しさん (ワッチョイ cf1c-PLFS)
2017/08/31(木) 19:01:39.56ID:JYM1pg890 33e4-p7enの主張が二転三転していて何が言いたいのかわからん
466デフォルトの名無しさん (オイコラミネオ MMff-Xn46)
2017/08/31(木) 19:05:47.57ID:Him+FUnNM std::optionalもアクセス構文が同じだから、使うにはポインタの知識が必要なのかな
467デフォルトの名無しさん (ドコグロ MM1f-CPXF)
2017/08/31(木) 19:07:29.54ID:+APqOuiHM >>463
必要なのは配列とインデックスと有効範囲だけだろ。ポインタを説明する必要は無い。
必要なのは配列とインデックスと有効範囲だけだろ。ポインタを説明する必要は無い。
468デフォルトの名無しさん (ワッチョイ 33e4-p7en)
2017/08/31(木) 19:17:27.06ID:8V5/tdJ10469デフォルトの名無しさん (ワッチョイ 6fea-G83I)
2017/08/31(木) 19:20:33.91ID:JJLmvwvW0 もうやめてくんない?
誰もイテレータの成り立ちなんて興味ないのよ
誰もイテレータの成り立ちなんて興味ないのよ
470デフォルトの名無しさん (ワッチョイ c300-sFCB)
2017/08/31(木) 19:20:55.53ID:Ce9FMcgb0 好きな順で覚えればいいよ
471デフォルトの名無しさん (ドコグロ MM1f-CPXF)
2017/08/31(木) 19:27:09.07ID:+APqOuiHM 初心者に配列管理を説明するのにわざわざポインタ持ち出すな、つうてんの。そういう事言ってるから老害なんだよ。
range-based forを説明した方がよっぽど有益だわ。
range-based forを説明した方がよっぽど有益だわ。
472デフォルトの名無しさん (ワントンキン MM9f-KFeJ)
2017/08/31(木) 19:33:38.32ID:N6KLaE+9M >>460
もちろんvectorを例にイテレータとポインタをまとめて教えるのは一つの手段として有りだと思うよ
ただ、何度も書いてる通りポインタとイテレータは独立した概念だから、その差分学習は論理必然じゃない
現に、俺は学部時代に授業でプログラム習ったときは、vectorのような連続領域じゃなくlistのような抽象リストで習ってるし
ポインタはCの授業で、アドレスの抽象として習ってるし、イテレータはデザパタの本で知ったからね
どの学び方がいいかは人それぞれなんだろうけど、独立した概念を一緒だよとか変な方便使うのは間違ってると思うよ
もちろんvectorを例にイテレータとポインタをまとめて教えるのは一つの手段として有りだと思うよ
ただ、何度も書いてる通りポインタとイテレータは独立した概念だから、その差分学習は論理必然じゃない
現に、俺は学部時代に授業でプログラム習ったときは、vectorのような連続領域じゃなくlistのような抽象リストで習ってるし
ポインタはCの授業で、アドレスの抽象として習ってるし、イテレータはデザパタの本で知ったからね
どの学び方がいいかは人それぞれなんだろうけど、独立した概念を一緒だよとか変な方便使うのは間違ってると思うよ
473デフォルトの名無しさん (ワントンキン MM9f-KFeJ)
2017/08/31(木) 19:34:33.87ID:N6KLaE+9M >>471
まぁ今ならコレだな
まぁ今ならコレだな
474デフォルトの名無しさん (ドコグロ MM1f-2CmY)
2017/08/31(木) 19:47:11.97ID:oD4Vxh+nM >>471に一票
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 空自機レーダー照射、音声データ公開 中国 ★3 [蚤の市★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★] [蚤の市★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 中国がここまで過敏になるのは日本に前科があるから。盧溝橋、満州事変。ジャップの先制攻撃は挙げればキリがないけど [472617201]
- ぶっちゃけ天のうって昭和天のうのせいで全然ありがたみないよな
- 頭悪いやつほどガンダムとかエヴァにハマるのってなんでなの?
- 犬って顔くっつけて寝たがるよな
- ゲームボーイのゲーム
- 『猟友会がクマ駆除を嫌がるなら潰すべき。職務を放棄するハンターから免許や銃を没収して罰金を取ろう』の声、ネットで上がる [932029429]
