次スレを立てる時は本文の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:o30VDF4g0429デフォルトの名無しさん (ワッチョイ 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に一票
475デフォルトの名無しさん (ワッチョイ 33e4-p7en)
2017/08/31(木) 19:58:01.09ID:8V5/tdJ10 >>471
この意見はさすがに論外だわ
ポインタは難しいものでもややこしいものでもないから、ちゃんとした読み物があれば問題なく理解できる
難しいなら後回しにしてもいいならわかるが、最初から教えないというのは学習の機会を奪っているとさえいえる
この意見はさすがに論外だわ
ポインタは難しいものでもややこしいものでもないから、ちゃんとした読み物があれば問題なく理解できる
難しいなら後回しにしてもいいならわかるが、最初から教えないというのは学習の機会を奪っているとさえいえる
476デフォルトの名無しさん (ワッチョイ ffc5-JjKz)
2017/08/31(木) 20:02:22.38ID:4TB5IpyN0477デフォルトの名無しさん (ワッチョイ c300-sFCB)
2017/08/31(木) 20:04:46.13ID:Ce9FMcgb0 老害が多いな
ソフトをやるならアセンブラからとか言いそうな勢い
ソフトをやるならアセンブラからとか言いそうな勢い
478デフォルトの名無しさん (ワッチョイ ffc5-JjKz)
2017/08/31(木) 20:08:55.54ID:4TB5IpyN0 尤も、C++の配列とか要素型であるクラスの継承とか多態性を表現しきらん欠陥品ではあるのだが
(インターフェースの配列はポインタの配列としてやるしかない;;
それゆえにやっぱC++で入門するなら中身知っとけと、
(インターフェースの配列はポインタの配列としてやるしかない;;
それゆえにやっぱC++で入門するなら中身知っとけと、
479デフォルトの名無しさん (スプッッ Sd1f-j2rg)
2017/08/31(木) 20:10:07.84ID:Y1zUatWId >>475
あなたに教えを請う人がいれば、あなたが教えたいように教えたらいい
あなたに教えを請う人がいれば、あなたが教えたいように教えたらいい
480デフォルトの名無しさん (ワッチョイ 53e3-KFeJ)
2017/08/31(木) 20:11:27.89ID:g5ZfiDra0481デフォルトの名無しさん (ワッチョイ ffc5-JjKz)
2017/08/31(木) 20:17:41.92ID:4TB5IpyN0 >>480
左様動的なポリモーフィズムにガッツリ対応したコンテナクラスのテンプレートを
曲がりなりにもかけるようになってからがC++の入門編
抽象化された上位レイヤーの知識だけあれば詳細は知らなくて良い、というのは
漏れのない抽象化が達成された後のみ通用する話だが
ずんねんながらC++はそうではないし言語の性格上っ今後とも永遠にそうはならない
左様動的なポリモーフィズムにガッツリ対応したコンテナクラスのテンプレートを
曲がりなりにもかけるようになってからがC++の入門編
抽象化された上位レイヤーの知識だけあれば詳細は知らなくて良い、というのは
漏れのない抽象化が達成された後のみ通用する話だが
ずんねんながらC++はそうではないし言語の性格上っ今後とも永遠にそうはならない
482デフォルトの名無しさん (ワッチョイ 334d-6h2J)
2017/08/31(木) 20:25:29.52ID:SvYtbMXE0 >>471
その有益というrange-based forを説明してくれよ。
その有益というrange-based forを説明してくれよ。
483デフォルトの名無しさん (ワッチョイ ff11-2CmY)
2017/08/31(木) 21:08:08.63ID:iFrEf/VH0 >>482
そこは流石にググれよ
そこは流石にググれよ
484デフォルトの名無しさん (ワッチョイ ff9f-QSye)
2017/08/31(木) 21:11:56.48ID:DEelFUhW0 このなげぇクソはいつ終わるんだ
485デフォルトの名無しさん (ワッチョイ 334d-6h2J)
2017/08/31(木) 21:32:29.56ID:SvYtbMXE0486デフォルトの名無しさん (オッペケ Src7-mvsT)
2017/08/31(木) 22:00:17.40ID:Tmpts49Ar 期待を裏切らない>>474
487デフォルトの名無しさん (ワッチョイ c300-sFCB)
2017/08/31(木) 22:12:11.60ID:Ce9FMcgb0 みんな、ちゃんとアセンブラから勉強しろよwww
488はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff15-X0kF)
2017/08/31(木) 23:18:28.91ID:Ev17QaWq0489デフォルトの名無しさん (ワッチョイ cf1c-PLFS)
2017/08/31(木) 23:19:12.52ID:JYM1pg890 >>471
おまえさ、じゃあ配列の添字は何だと思っているわけ?
「どこにある」という情報をもつもの、という点で同じだぞ
だから for(i = first ; i != last; ++i) において first や last や i が
整数であろうがポインタであろうがイテレータであろうが
同じ論理が通用するんだろうがよ
ポインタで範囲外アクセスこくような大馬鹿者が
整数ならそんなことないとでもぬかすのか?
おまえさ、じゃあ配列の添字は何だと思っているわけ?
「どこにある」という情報をもつもの、という点で同じだぞ
だから for(i = first ; i != last; ++i) において first や last や i が
整数であろうがポインタであろうがイテレータであろうが
同じ論理が通用するんだろうがよ
ポインタで範囲外アクセスこくような大馬鹿者が
整数ならそんなことないとでもぬかすのか?
490デフォルトの名無しさん (ワッチョイ cf1c-PLFS)
2017/08/31(木) 23:24:55.90ID:JYM1pg890 >>472
おまえC++やCよりも前に何かやってただろ
俺だってC++をCより先に憶えたクチで
そんな真似ができたのはアセンブラ使いだったからな
間接の概念をまっさらから憶えるのに
イテレータは無駄に難しいマゾプレーだつってんだ
ポインタわかっててもハンドルで悩むやついるくらいで
それに輪を掛けて++まであるのがイテレータであって
おまえC++やCよりも前に何かやってただろ
俺だってC++をCより先に憶えたクチで
そんな真似ができたのはアセンブラ使いだったからな
間接の概念をまっさらから憶えるのに
イテレータは無駄に難しいマゾプレーだつってんだ
ポインタわかっててもハンドルで悩むやついるくらいで
それに輪を掛けて++まであるのがイテレータであって
491デフォルトの名無しさん (ワッチョイ cf1c-PLFS)
2017/08/31(木) 23:27:04.06ID:JYM1pg890492デフォルトの名無しさん (ワッチョイ 334d-6h2J)
2017/08/31(木) 23:32:03.77ID:SvYtbMXE0 >>471
まだ説明してないのか。説明頼むよ。キミが言い出したことなんだよ。
まだ説明してないのか。説明頼むよ。キミが言い出したことなんだよ。
493デフォルトの名無しさん (ワッチョイ ffaa-6h2J)
2017/08/31(木) 23:40:32.47ID:y40vazij0 (void*以外の)ポインタ自体も生のアドレス概念からは抽象化されている。
指されるオブジェクトの型やサイズを持っているんだからね。
それをさらに(ある方向に)抽象化したものがイテレータなんであって、そのように段階を追って
抽象化されていくストーリーを語るのは初心者向けにも有意義だと考える。
指されるオブジェクトの型やサイズを持っているんだからね。
それをさらに(ある方向に)抽象化したものがイテレータなんであって、そのように段階を追って
抽象化されていくストーリーを語るのは初心者向けにも有意義だと考える。
494はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff15-X0kF)
2017/08/31(木) 23:59:46.91ID:Ev17QaWq0 イテレータに限らないけど抽象化されたものは抽象化されたままで扱わないと抽象化した意味がなくて、
(内部の実装を意識しなきゃならないのなら抽象化の甲斐が無い。)
一方では、その抽象化を作る側になることもあるので抽象化が出来上がるまでは抽象化の内側も知ってなきゃいけない。
つまり、層を積み重ねるたびに抽象化の壁を作っていくってのがプログラムを構成する基本的なやり方だろう。
だから、プリミティブな方から積み重ねながらその抽象化が意味するところを学ぶってのは普通の方法だと思う。
そういう意味で >>493 に賛成。
抽象化の内側を知ってしまった人が抽象化の壁の向こうを忘れて抽象化されたものとしてだけ
扱うってのはそれなりにセンスがいるんじゃないかとも思うんだけど、
C/C++ の背景にあるセマンティクスは良くも悪くも機械の理屈なんで、
どうあがいても高級アセンブラだと割り切って泥臭いポインタの側から学ぶのがいいと私は思うよ。
その泥臭いところを頑張って隠してるのが C++ ってもんなんで、
泥臭いところを知ったら C++ の色んな機能が「あー、こういうの欲しかったわー」ってなってありがたみを感じる。
(内部の実装を意識しなきゃならないのなら抽象化の甲斐が無い。)
一方では、その抽象化を作る側になることもあるので抽象化が出来上がるまでは抽象化の内側も知ってなきゃいけない。
つまり、層を積み重ねるたびに抽象化の壁を作っていくってのがプログラムを構成する基本的なやり方だろう。
だから、プリミティブな方から積み重ねながらその抽象化が意味するところを学ぶってのは普通の方法だと思う。
そういう意味で >>493 に賛成。
抽象化の内側を知ってしまった人が抽象化の壁の向こうを忘れて抽象化されたものとしてだけ
扱うってのはそれなりにセンスがいるんじゃないかとも思うんだけど、
C/C++ の背景にあるセマンティクスは良くも悪くも機械の理屈なんで、
どうあがいても高級アセンブラだと割り切って泥臭いポインタの側から学ぶのがいいと私は思うよ。
その泥臭いところを頑張って隠してるのが C++ ってもんなんで、
泥臭いところを知ったら C++ の色んな機能が「あー、こういうの欲しかったわー」ってなってありがたみを感じる。
495デフォルトの名無しさん (ワッチョイ 33e4-p7en)
2017/09/01(金) 00:30:44.48ID:oWX+X4Ay0 ストラウストラップが言うにはC++は
低レイヤーにアクセスできる機能とオーバーヘッドが無く使いやすいように隠蔽できる機能を持っている言語というようなことを言っていて
低レイヤーの部分を知らなくていいとは言っていない
低レイヤーにアクセスできる機能とオーバーヘッドが無く使いやすいように隠蔽できる機能を持っている言語というようなことを言っていて
低レイヤーの部分を知らなくていいとは言っていない
496デフォルトの名無しさん (ワッチョイ 334d-6h2J)
2017/09/01(金) 01:02:22.22ID:E+DzN2Xf0 アセンブラの代替言語なのだから当たり前だ。用途もOSやドライバ、マイコン向けばかりだ。
COBOL、FortranやPerl、C#やJavaの代わりに使う人などいない。
低層を隠蔽する機能などお呼びではない。
COBOL、FortranやPerl、C#やJavaの代わりに使う人などいない。
低層を隠蔽する機能などお呼びではない。
497デフォルトの名無しさん (ワッチョイ cf1c-PLFS)
2017/09/01(金) 02:01:03.59ID:2msaHTP30 いやCOBOLの代わりには使うぞ
Fortranの代わりつーとCな客はいたねえ
Fortranの代わりつーとCな客はいたねえ
498デフォルトの名無しさん (ワッチョイ cf51-tIp8)
2017/09/02(土) 16:34:51.42ID:Vkplowcj0 http://opencv.jp/cookbook/opencv_img.html#image-resize
ここのソースコードをコピペしてコンパイルしようとしたのですが
関数 `cv::Mat::release()' 内:
test.cpp:(.text._ZN2cv3Mat7releaseEv[_ZN2cv3Mat7releaseEv]+0x47): `cv::Mat::deallocate()' に対する定義されていない参照です
collect2: error: ld returned 1 exit status
このようなエラー文が出てしまいます
使っているOSはdebian stretchです
/usr/include/opencv2には必要なファイルはありました
どのようにコンパイルすればいいのでしょうか
ここのソースコードをコピペしてコンパイルしようとしたのですが
関数 `cv::Mat::release()' 内:
test.cpp:(.text._ZN2cv3Mat7releaseEv[_ZN2cv3Mat7releaseEv]+0x47): `cv::Mat::deallocate()' に対する定義されていない参照です
collect2: error: ld returned 1 exit status
このようなエラー文が出てしまいます
使っているOSはdebian stretchです
/usr/include/opencv2には必要なファイルはありました
どのようにコンパイルすればいいのでしょうか
499デフォルトの名無しさん (ワッチョイ 6309-8f0a)
2017/09/02(土) 16:50:32.70ID:8FAKxNXu0 環境依存すれってなくなったの?
501片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd1f-dw5s)
2017/09/02(土) 17:01:02.17ID:bEjlZdoBd >>500
【初心者歓迎】C/C++室 Ver.101【環境依存OK】 [無断転載禁止]??2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1500329247/
【初心者歓迎】C/C++室 Ver.101【環境依存OK】 [無断転載禁止]??2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1500329247/
502デフォルトの名無しさん (ワッチョイ 6309-8f0a)
2017/09/02(土) 17:02:35.03ID:8FAKxNXu0 ないすー。
503デフォルトの名無しさん (ワッチョイ cf51-tIp8)
2017/09/02(土) 17:03:12.44ID:Vkplowcj0504デフォルトの名無しさん (スプッッ Sd1f-WnLs)
2017/09/02(土) 18:03:57.34ID:qkqtxzLpd c++に限った話じゃないんだけど参考書
とかだとメソッドの後にフィールドが
書かれてる事が多いようだけど、それが
一般的なの?
とかだとメソッドの後にフィールドが
書かれてる事が多いようだけど、それが
一般的なの?
505デフォルトの名無しさん (ワッチョイ fff0-6h2J)
2017/09/02(土) 18:45:42.87ID:qDvIb2f40 ちがう
一般的にはフィールドたるメンバ変数の方が先に来る
学習の都合で、メンバ変数を先に説明した方が、どう考えてもラク
メンバ関数を先に説明すると、入門書を読むレベルの初心者は間違いなく混乱するので、そんな参考書はまず見かけない
そもそもメソッドの中で使う変数は始めに宣言しておかないと使えない
結論としてはあなたが用語の取り違えをしてる……としか
一般的にはフィールドたるメンバ変数の方が先に来る
学習の都合で、メンバ変数を先に説明した方が、どう考えてもラク
メンバ関数を先に説明すると、入門書を読むレベルの初心者は間違いなく混乱するので、そんな参考書はまず見かけない
そもそもメソッドの中で使う変数は始めに宣言しておかないと使えない
結論としてはあなたが用語の取り違えをしてる……としか
506デフォルトの名無しさん (ワッチョイ ffaa-6h2J)
2017/09/02(土) 19:04:41.89ID:4lafg32N0 クラスのレイアウトの話じゃなくて?
507デフォルトの名無しさん (ワッチョイ ffc5-JjKz)
2017/09/02(土) 19:23:47.80ID:FGRVT/X40 レイアウト、というとデータの並び順の意味にとられかねず語弊がある
508デフォルトの名無しさん (ワッチョイ ffaa-6h2J)
2017/09/02(土) 19:28:16.32ID:4lafg32N0 じゃあ宣言の順序
509デフォルトの名無しさん (ワッチョイ 33e4-73wU)
2017/09/02(土) 19:57:46.29ID:l0rE+2Xa0 public、protected、privateの順に書いていくと
自然と変数はpublic関数の次に来るわ
自然と変数はpublic関数の次に来るわ
510デフォルトの名無しさん (ワッチョイ 2304-k/3h)
2017/09/02(土) 21:02:43.47ID:EU1kDRi00 普通アクセス修飾子の順じゃなくてフィールド→メソッドの順じゃないの
カプセル化するから変数なんてほとんどprivateだろうし
変数は変数でまとめて書いてもらわないと混乱する
カプセル化するから変数なんてほとんどprivateだろうし
変数は変数でまとめて書いてもらわないと混乱する
511デフォルトの名無しさん (ワッチョイ ff32-X0kF)
2017/09/02(土) 21:08:20.92ID:Wuw432Mc0 ユーザーにとって重要な項目から順に書く
つまり、public→protected→privateで
ユーザーに見せる必要のないprivateは一番下で
つまり、public→protected→privateで
ユーザーに見せる必要のないprivateは一番下で
512デフォルトの名無しさん (ワッチョイ ffc5-JjKz)
2017/09/02(土) 21:13:48.77ID:FGRVT/X40 変数の宣言と関数の宣言の順序がどうでも良いのは自明
メンバ関数の定義がメンバ関数内で使用するメンバ変数の宣言に先行する場合も実験する限り合法
(規格に具体的にどういう文言で規定してあるのかは知らん
まあ定義時点で不完全な型やら値やらはテンプレートの定義で頻出するから
あんま定義と宣言の順序にこだわらない処理系の作りなのだと納得しておく
しかしなぜかテンプレートの引数でない型の定義(または宣言)と使用には厳格な順序を求められる…
次のコードはビルドが通らない
class Baz {
// struct Bar; // 左のコメントアウトを外したら逝ける
void foo(Bar& b);
struct Bar { int x, y; }
};
多分Cとの互換性のために仕様がワケワカメになった例
メンバ関数の定義がメンバ関数内で使用するメンバ変数の宣言に先行する場合も実験する限り合法
(規格に具体的にどういう文言で規定してあるのかは知らん
まあ定義時点で不完全な型やら値やらはテンプレートの定義で頻出するから
あんま定義と宣言の順序にこだわらない処理系の作りなのだと納得しておく
しかしなぜかテンプレートの引数でない型の定義(または宣言)と使用には厳格な順序を求められる…
次のコードはビルドが通らない
class Baz {
// struct Bar; // 左のコメントアウトを外したら逝ける
void foo(Bar& b);
struct Bar { int x, y; }
};
多分Cとの互換性のために仕様がワケワカメになった例
513デフォルトの名無しさん (ワッチョイ 53e3-KFeJ)
2017/09/02(土) 21:17:46.72ID:RAQSA3Kg0 ルールが存在してwell documentedで、ガバナンスがきいていることが重要
お前らのオレオレ哲学なんかどうでもいい
お前らのオレオレ哲学なんかどうでもいい
514デフォルトの名無しさん (ワッチョイ 2304-k/3h)
2017/09/02(土) 21:19:59.11ID:EU1kDRi00 ああそっか、プロトタイプ宣言しなきゃいけないんだっけC++は
C#の脳で考えてたわ
C#の脳で考えてたわ
515デフォルトの名無しさん (オッペケ Src7-mvsT)
2017/09/02(土) 21:51:57.26ID:MiX3UcgLr >変数の宣言と関数の宣言の順序がどうでも良いのは自明
自明かねぇ
C++11は問題になる例が思いつかないがC++98,03,14はどうでも良くない
自明かねぇ
C++11は問題になる例が思いつかないがC++98,03,14はどうでも良くない
516デフォルトの名無しさん (ワッチョイ 7f89-eV1K)
2017/09/02(土) 22:01:20.86ID:VLpwNclp0 コンストラクタ実行時のメンバ変数の初期化の実行順が、初期化子の記述順ではなくクラス定義での並び順に従うっていうのがあった気がするけど、新しい規格では変わったんだっけ?
517デフォルトの名無しさん (ワッチョイ bf91-b8Mh)
2017/09/02(土) 22:10:24.95ID:pFkNGMyF0518デフォルトの名無しさん (オッペケ Src7-mvsT)
2017/09/02(土) 22:21:28.04ID:MiX3UcgLr >>516
微妙な表現以外、特に変わったという話は聞いたことがない
C++03 12.6.2/5
Then, nonstatic data members shall be initialized in the order they were declared in the class definition (again regardless of the order of the mem-initializers).
C++20 draft 15.6.2/(13.3)
Then, non-static data members are initialized in the order they were declared in the class definition (again regardless of the order of the mem-initializers).
微妙な表現以外、特に変わったという話は聞いたことがない
C++03 12.6.2/5
Then, nonstatic data members shall be initialized in the order they were declared in the class definition (again regardless of the order of the mem-initializers).
C++20 draft 15.6.2/(13.3)
Then, non-static data members are initialized in the order they were declared in the class definition (again regardless of the order of the mem-initializers).
519デフォルトの名無しさん (ワッチョイ 637f-6h2J)
2017/09/02(土) 22:37:32.53ID:i6uhqYA10 >C++11は問題になる例が思いつかないがC++98,03,14はどうでも良くない
とか書いてるから何か制約が無くなるような変更があったのかと思って聞いたんでない?
とか書いてるから何か制約が無くなるような変更があったのかと思って聞いたんでない?
520デフォルトの名無しさん (ワッチョイ ffc5-JjKz)
2017/09/02(土) 22:39:43.42ID:FGRVT/X40 ちな漏れがどうでもよい(どんな順序でも問題ない)と言ったのは
変数の宣言と関数の宣言の順序(どちらを先にするか)だからな
これ豆な
変数の宣言と関数の宣言の順序(どちらを先にするか)だからな
これ豆な
521デフォルトの名無しさん (オッペケ Src7-mvsT)
2017/09/02(土) 23:00:05.29ID:MiX3UcgLr C++11でもこれがあったか
struct A {
int m;
decltype(m) /*←mは先に宣言が必要*/ f() { return m; /*←mは後でもいい*/ }
};
C++11で緩和されたのは11章のどっか(忘れた)
struct A {
int m;
decltype(m) /*←mは先に宣言が必要*/ f() { return m; /*←mは後でもいい*/ }
};
C++11で緩和されたのは11章のどっか(忘れた)
522デフォルトの名無しさん (ワッチョイ 7fef-6h2J)
2017/09/03(日) 15:24:44.62ID:5WRYI1ZX0 static メンバ関数と friend 関数の使い分けについて教えてください
どちらも似た機能だと思ってしまうのですが‥
どちらも似た機能だと思ってしまうのですが‥
523はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff15-X0kF)
2017/09/03(日) 15:42:16.65ID:XXf7E2cS0 あ〜、そんなこと考えたことなかったけど、クラス (メンバ関数) 内部から見たら近いっちゃ近いのかも?
クラスを定義する側じゃなくてそのクラスを使う側の気持ちで考えて。
クラスを定義する側じゃなくてそのクラスを使う側の気持ちで考えて。
524デフォルトの名無しさん (ワッチョイ 7fef-6h2J)
2017/09/03(日) 15:47:48.54ID:5WRYI1ZX0 friend 関数は public で,static メンバ関数は private で,て感じでこの前は書きました
普通はどうするものかをお聞きしたいところです
普通はどうするものかをお聞きしたいところです
525はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff15-X0kF)
2017/09/03(日) 15:55:23.63ID:XXf7E2cS0 すまんけど自明すぎてどう使い分けるとか説明できない。
使い分け以前にそもそも理解できているか怪しいと思う。
使い分け以前にそもそも理解できているか怪しいと思う。
526デフォルトの名無しさん (ワッチョイ 7fef-6h2J)
2017/09/03(日) 16:12:00.06ID:5WRYI1ZX0 何度も宣伝するようで気が引けますが,前に書いたのは >>158
演算子のオーバーロードに絡むものは基本 friend で,内輪で使うものは private の static メンバ関数で,
くらいの線引きをしています.
書いてみてわかったのは「自明」という感じはしないこと,かな,考えてみれば friend 関数って他の言語にはなさそうです
演算子のオーバーロードに絡むものは基本 friend で,内輪で使うものは private の static メンバ関数で,
くらいの線引きをしています.
書いてみてわかったのは「自明」という感じはしないこと,かな,考えてみれば friend 関数って他の言語にはなさそうです
527デフォルトの名無しさん (ワッチョイ cf1c-PLFS)
2017/09/03(日) 16:48:05.14ID:jXGwZqzU0 何で? operatorはグローバルに出さなくても多重定義候補に挙がるぞ
俺は別の理由でoperatorをグローバルにする傾向があるが
俺は別の理由でoperatorをグローバルにする傾向があるが
>>527
http://codepad.org/8Z3c2obA
ほー,これは不思議だなあ‥
friend をはずすとコンパイルできない
friend をつけてしまうと public に置こうが private に置こうが関係ない,という認識であっていますか?
http://codepad.org/8Z3c2obA
ほー,これは不思議だなあ‥
friend をはずすとコンパイルできない
friend をつけてしまうと public に置こうが private に置こうが関係ない,という認識であっていますか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【前橋市】小川晶前市長とラブホテルで打ち合わせをした54歳男性職員を停職処分 今月末で依願退職するという [シャチ★]
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」★2 [ぐれ★]
- 【埼玉】「無免許で高速道路で事故」トラックの追突事故で10代男性死亡 無免許過失運転致死の疑いでトルコ国籍の男(22)逮捕 戸田市 [ぐれ★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★6 [七波羅探題★]
- 広島・廿日市、おこめ券配布せず 全市民に3000円現金給付へ [どどん★]
- 【警視庁】走行中の電車で女性に露出した下半身押しつけたか 無職の男(46)逮捕「チャンスがあればいつでもやる」 [nita★]
- 【実況】博衣こよりのえちえちチーズケーキを仕込み(雑談あり)🧪★2
- じゃあ何券だったら、日本人は満足したんだよ [452836546]
- 【速報】1ポンド210円で日英GDP逆転(残り1.5円)...世界6位の経済規模に転落 [237216734]
- 朝日新聞記者「中国軍のレーダー照射はこめかみに銃を突きつけられたのと同じ。僕なら反撃して撃墜してる」高市 [931948549]
- 石破「日中関係は最新の注意払うべき」ヤフコメ大激怒してしまう [163661708]
- 野党が“おこめ券”追及 高市早苗「鈴木農水大臣がお米券大好きなんよ」😹 [817148728]
