1 名前:デフォルトの名無しさん mailto:sage [2015/12/04(金) 23:54:41.33 ID:rlbDZGLz.net] C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレに お願いします。 前スレ C++相談室 part120 peace.2ch.net/test/read.cgi/tech/1445516998/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.97【環境依存OK】 peace.2ch.net/test/read.cgi/tech/1439849418/ 次期規格C++1zはこちら C++14/C++1z 20 peace.2ch.net/test/read.cgi/tech/1410382924/ ■長いソースを貼るときはここへ。■ codepad.org/ ideone.com/
809 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 21:36:42.99 ID:QjeDGB/s.net] こういうアホには 「バカか? ポインタ1個分がスタック圧迫するだと?」 と罵倒できる、ここの方が健全だよね。
810 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 21:42:47.06 ID:69fUgg/c.net] 真逆というかなんというか Derived : Base Sub extends Super って感じかな だから余計にカオス
811 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 22:10:05.57 ID:z0Cmtt7f.net] >>803 >>805 ありがとうございます なんだか自信に満ちた書きっぷりだったので、普通にフムフムと読んでしまいました ただ、仮想関数テーブルは速度の観点でよろしくないことがあるとは聞きます そういう場合にメタプログラミングで置き換えられないか考える、という感じでしょうか?
812 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 22:11:01.63 ID:d5qzONzB.net] そのくらいは設計時点でどっち使うか決める というか見当つけないとやばいような
813 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 22:18:54.46 ID:LUXlk2QR.net] >>809 真偽は別として、 仮想関数の数だけ関数ポインターを格納したvtableを すべてのオブジェクトが持つためと書いてあるだろ文盲
814 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 22:25:15.88 ID:BvZrk89z.net] >>811 仮想関数である事がパフォーマンス上の問題になるケースって、相当少ないから気にしなくて良いよ。 本の1〜2回、ポインタによる間接参照を辿る程度。 そういうのは問題になってから、原因を調査した上で改良すれば良いだけ。 ほとんどの場合、全然関係ないところにボトルネックはあるから、気にしない気にしない。
815 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 22:26:07.60 ID:QjeDGB/s.net] >>813 少しでも知能があればインスタンスごとに持つ必要がないのは明白であり、 既に>>805 で偽であると断じている 死ね、バカ
816 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 22:33:19.79 ID:QjeDGB/s.net] >>811 二重の間接参照のペナルティはおうけど、それが問題になる局面で仮想メンバ呼ばなけりゃ良いだけの話 件のブログは全く読む気しないが、テンプレートで性能アップなんてのは幻想だと思うよ
817 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 22:45:41.98 ID:1MrQElfZ.net] >>803 ダックタイピングになっても、動的型付けになるわけじゃないんだから型の安全性は変わらんよ お前テンプレートメタプログラミングしたことないだろ
818 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 22:50:22.90 ID:LPUWxnLk.net] >>803 「書かれたコードを呼び出す」とはこれまた曖昧な
819 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 22:53:59.49 ID:bHHjMdz0.net] 関係ないけど、参照もしくはポインタ渡しでなければポリモーフィズムが効かないことを、その オブジェクトがヒープ上になければいけない、と勘違いしてるやつが以前いた。 放置した。
820 名前:デフォルトの名無しさん mailto:sage [2016/01/13(水) 23:32:42.49 ID:z0Cmtt7f.net] >>814 >>816 ありがとうございます 自分にはメタプログラミングは敷居が高く感じるので、それを聞いて安心しました だいたい、経験浅いくせに凝ったことやろうとしてもろくなことにならんですよね
821 名前:デフォルトの名無しさん mailto:sage [2016/01/14(木) 02:21:42.64 ID:87BOzuvC.net] 頑張って最後まで読んでみた。 baseclass->virtual();が遅い、デカイと言いながら パフォーマンス向上!!と謳ったテンプレートではbaseclass->virtual();が実現できないと記事の最後に書いてあって和ロタ こういうアホにスペース貸し出すな。qiita
822 名前:デフォルトの名無しさん mailto:sage [2016/01/14(木) 03:35:19.02 ID:wi7HAYBx.net] >>813 そもそもそれが真だとしてスタック食い潰すか? 仮想関数でポリモルしたいならポインタで扱う事になるし
823 名前:デフォルトの名無しさん mailto:sage [2016/01/14(木) 03:49:31.16 ID:87BOzuvC.net] >>802 > Riyaaaa_a > 北の方で高専生やってます。 C++でゲーム作ったり、テンプレートメタプログラミングをしたり。 ずいぶん幼稚な思考だと思ったら案の定。
824 名前:デフォルトの名無しさん mailto:sage [2016/01/14(木) 15:11:12.77 ID:3xoxSYC8.net] D&E(和訳)読んでふむふむ、とか思ってたのに自分もvtblはインスタンスごとにあると思ってた 何故今までおかしいと思わなかったんだ自分・・・吊ってくるorz
825 名前:デフォルトの名無しさん mailto:sage [2016/01/14(木) 19:29:33.39 ID:Sio+1GmJ.net] コンストラクターの実行中は基底クラスの構築が完了する度に仮想関数が変わっていくんだから インスタンスごとにテーブルを持ってると考えてしまうことはそんなにおかしな発想じゃあない
826 名前:デフォルトの名無しさん mailto:sage [2016/01/14(木) 19:40:40.78 ID:xs/jHoAF.net] >>825 便乗質問ですが、 テーブルの作成はクラスの初回のインスタンス化で行われ、 2個目以降のインスタンス化では何もしないということですか?
827 名前:デフォルトの名無しさん [2016/01/14(木) 19:47:12.71 ID:b/ISwWkG.net] 何もしないっていうより無駄がない つまり共有できるところは共有するということでは(キリッ)
828 名前:デフォルトの名無しさん mailto:sage [2016/01/14(木) 20:12:29.09 ID:MzRmodn1.net] >>826 いんや、コンパイル時に作成だよ。
829 名前:デフォルトの名無しさん mailto:sage [2016/01/14(木) 20:14:56.37 ID:hYstN1PO.net] chronoでは日付は扱えないようですね。標準で日付を扱える最新ライブラリはどれですか?
830 名前:デフォルトの名無しさん mailto:sage [2016/01/14(木) 20:56:56.66 ID:wi7HAYBx.net] >>825 基底クラスの仮想関数が呼び出せないとでも思い込んでなきゃ そういう発想にはならないと思う
831 名前:デフォルトの名無しさん mailto:sage [2016/01/14(木) 21:39:02.45 ID:26y3BBuX.net] お前らポリモなんとかとかバーチャルなんとかとか小難しいことばっか言ってるからそんなんなんだぞ
832 名前:デフォルトの名無しさん mailto:sage [2016/01/14(木) 21:50:18.45 ID:xs/jHoAF.net] >>828 ありがとです。一人で変な勘違いしてました 単なるテーブルなんだからコンパイル時に出来上がって当然ですよね
833 名前:デフォルトの名無しさん mailto:sage [2016/01/14(木) 22:37:12.93 ID:P4SGT366.net] >>826 初回かどうかは関係なくインスタンスごとにテーブルの初期化が行われるように振る舞う ideone.com/TyPDhY
834 名前:デフォルトの名無しさん mailto:sage [2016/01/14(木) 23:32:48.35 ID:P4SGT366.net] >>829 ctime 残念ながらC11のtimespecは使えないので ミリ秒まで必要ならstd::chronoを組み合わせて使うしかない
835 名前:デフォルトの名無しさん mailto:sage [2016/01/15(金) 07:04:44.57 ID:WQIaqYsW.net] シンゴー、シンゴー
836 名前:デフォルトの名無しさん mailto:sage [2016/01/17(日) 22:58:32.40 ID:aEwXbHoX.net] コンストラクト中に呼んじゃ行けないのは純粋仮想関数だけ
837 名前:デフォルトの名無しさん mailto:sage [2016/01/17(日) 23:42:22.64 ID:l2MX1byn.net] 呼べないじゃん
838 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 00:07:48.02 ID:kCdvK5WI.net] お前らポリモなんとかとかバーチャルなんとかとか小難しいことばっか言ってるからそんなんなんだぞ
839 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 00:20:19.57 ID:PN/aZH6j.net] うるせーバカ ピュア・バーチャルな関数があるとコンパイル通らないわ
840 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 00:36:29.76 ID:1IQlXDwz.net] お前のマイナーなコンパイラーの挙動をエラそうに書かれても それに間接的似呼ばれている場合はコンパイルエラーにすることが不可能だし
841 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 01:02:18.06 ID:PN/aZH6j.net] はいはい。難癖つける奴が出てる来ると100%予測してました。
842 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 07:07:28.85 ID:1IQlXDwz.net] 難癖と言うが具体的なコンパイラーの名前を書いて見ろよ どうせ妄想のコンパイラーだろ?
843 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 09:13:04.59 ID:20Rww3ua.net] >>834 悩みたくないのでBoostのdate_time使います
844 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 09:55:38.04 ID:PN/aZH6j.net] >>842 ideone.com/hLWFJG
845 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 10:47:02.69 ID:AVCLJmiz.net] >>844 > prog.cpp: In constructor 'Kantoka::Kantoka()': > prog.cpp:13:11: warning: pure virtual 'virtual void Nantoka::nantoka()' called from constructor "warning" を「コンパイル通らない」と言うかどうか、という点の認識が違うんじゃないかな。 コンパイルは通ると言う人のほうが多いと思うよ。 純粋仮想関数がオーバーライドされてないクラスのインスタンス化できないことについては たぶん誰も異論は無い。 でもそこはコンストラクタ中の純粋仮想関数呼び出しとは関係ない。
846 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 11:01:49.40 ID:PN/aZH6j.net] >>845 そういうのを「難癖」と表現しました。 結局インスタンス化できないんだからピュア・バーチャルはコンストラクタから呼べないということには間違いは微塵もないんだが。 あとワーニングはエラー扱いしたほうがいいよ。俺はずっとそうしてる。そうしない奴とは一緒に仕事したくない。
847 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 11:06:03.21 ID:ib6exPCP.net] >>846 ワーニングかエラーかって言葉の定義の問題だから、スタンスの問題にすり替えられても少々困る。
848 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 11:17:37.56 ID:AVCLJmiz.net] >>846 もしかして、 Kantoka からさらに派生したクラスで nantoka() をオーバーライドすれば 派生クラスがインスタンス化できる(純粋仮想関数を呼び出す Kantoka のコンストラクタが呼ばれる)のに 気づいてないのかな?
849 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 11:33:19.11 ID:PN/aZH6j.net] >>848 難癖の上塗り その場合nantoka()はピュアバーチャルじゃないからw つかそんなへんてこりんな設計するな
850 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 11:35:23.24 ID:FsCZAz0x.net] ワーニングwwww
851 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 11:51:13.65 ID:AVCLJmiz.net] >>849 いや、>848の場合でも>844-845と同じ警告が出るんだけどね。 コンパイラが間違ってるとでも言うの?
852 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 12:11:39.59 ID:5L4n9nSa.net] 基底クラスのコンストラクタの話かと思って読んでたら違った…
853 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 13:02:04.77 ID:HetPa4FB.net] コンセプトってC++17で入るんですか?
854 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 13:34:41.80 ID:PN/aZH6j.net] >>848 ideone.com/jJHfvI 試しにやってみたけどリンクエラーになるんですが?結局コンストラクタではピュアバーチャルは呼べない。 >>850 バーカ。お前は難癖野郎未満。
855 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 14:08:04.19 ID:uMGt1p7o.net] >>854 ideone.com/jFx9uA
856 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 15:39:02.12 ID:PN/aZH6j.net] あ!
857 名前:デフォルトの名無しさん mailto:sage [2016/01/18(月) 18:16:12.49 ID:IEnSuMyH.net] ここは怖いインターネットですね
858 名前:デフォルトの名無しさん mailto:sage [2016/01/19(火) 00:43:10.26 ID:Lt3kNDHx.net] >>854-856 定義しなけりゃエラー、定義すりゃ動くって話じゃなくて、どっちも未定義動作の結果だから気をつけてな。
859 名前:デフォルトの名無しさん mailto:sage [2016/01/19(火) 01:28:27.98 ID:tEwpEdlT.net] 0 3 4 8 3 2 3 9 4 2 3 4 ...と続くファイルから一個ずらしの差分をとってどこかに出力する場合、 ifstram ifs {input_file}; ifstream_iterator<int> iite1 {ifs}; ifstream_iterator<int> eos; ifstream_iterator<int> iite2 {ifs}; ofstream ofs {output_file} ofstream_iterator<int> oite {ofs}; transform( ++iite1, eos, iite2 , []( const int& post , const int& prev) { return post - prev; } ); ってやったらダメなんですか? なんか結果がおかしいんですが
860 名前:デフォルトの名無しさん mailto:sage [2016/01/19(火) 01:40:19.12 ID:tEwpEdlT.net] あ、ifstream_iteratorじゃなくてistream_iteratorですね
861 名前:デフォルトの名無しさん mailto:sage [2016/01/19(火) 01:59:26.13 ID:Lt3kNDHx.net] >>859-860 2つの iite1, iite2 それぞれがインクリメントのたびに ifs >> x するから、 片方をインクリメントしたときに取り出された値はもう片方からは見えなくなる。 たぶん adjacent_difference() さんの出番。 https://www.google.co.jp/search?q=adjacent_difference
862 名前:デフォルトの名無しさん mailto:sage [2016/01/19(火) 12:28:34.20 ID:I8HE+idC.net] 参照と左辺値の両方を受け取れる関数って作れますか? ムーブやコピーを使わずに両者を一括で処理できる関数を作りたいのですが。 ideone.com/GAlNj2
863 名前:デフォルトの名無しさん mailto:sage [2016/01/19(火) 12:40:31.71 ID:LBmPehyf.net] >>862 結局何をやりたいのかは不明だけど、まずconstを勉強しなさい ideone.com/OH9KJ8
864 名前:デフォルトの名無しさん mailto:sage [2016/01/19(火) 12:56:09.58 ID:o3vXp8Uj.net] >>861 ああこれだと思ったんですが、それの仕様で、最初の一項はそのまま残すってのが、何でこんな風にしちゃったのって思いますね。 要らないなら最初を飛ばせばいいじゃんって思うかもしれませんが、例えば別のクラスからdoubleなんかへ『特定の二項関数を適用した場合のみキャストが定義』されるってケースでは adjacent_differnceでは最初の一項が単なる代入となってしまうので次元が違うんですよ 具体例を挙げるなら、time pointとtime pointの差でtime durationが定義されるって場合、欲しいのはtime durationのリストなのに、最初の一項を代入が発生すると、それはtime pointだから型が合わないわけです じゃあ特別に初項のtime pointだけ無理矢理time durationに変換するコードを定義するってなると邪道というかコードが汚れるというか、そもそもそんな定義に正当性はあるのか、とか余計なことを色々考えなければならなくなるので、とにかくなんでこんな仕様にしたのか残念でなりません 点毎の微分係数のリストが欲しいのに初項だけなぜか原始関数が入ってるみたいな感じです
865 名前:デフォルトの名無しさん mailto:sage [2016/01/19(火) 13:29:59.33 ID:LBmPehyf.net] それなら最初を捨てればいいだけじゃないの? 初期値が0扱いされてるだけだから正当性もクソもないよ 残念なのは。。。
866 名前:デフォルトの名無しさん mailto:sage [2016/01/19(火) 14:13:46.61 ID:u5xt7rMo.net] >>865 出力されるものは、 初項のみ入力型、それ以降は入力型どうしの差の型です。 両者が一致しないならコンパイルエラーになるでしょう? 取り敢えず生成して最初だけ捨てるとか以前にコンパイルでストップするでしょ
867 名前:デフォルトの名無しさん mailto:sage [2016/01/19(火) 14:31:29.68 ID:I8HE+idC.net] >訂正 >参照と左辺値の両方を受け取れる関数って作れますか? >参照と右辺値の両方を受け取れる関数って作れますか? >>863 まさにこれがやりたかったのです。ありがとうございます。 h関数やmoveの用途に誤解を招くミスがあったので元ソースを修正しておきました。 ideone.com/GAlNj2
868 名前:864 mailto:sage [2016/01/19(火) 16:48:12.65 ID:u5xt7rMo.net] 私と同じ悩みを持っている人により質問がされていて、あれこれ議論されているサイトを見つけました。根本的解決法はないようです。(自分で初項を代入しない版adjacent_defferenceを作るしかないようで、そうするとSTLの最適化メカニズムから外れる可能性があると) stackoverflow.com/questions/8267806/implicit-transformation-while-calling-stdadjacent-difference なので、ワークアラウンドとして出力型から入力型への変換関数を書き、無条件でNaNを返すようにしました。 これなら今後意図しないところでうっかり勝手なキャストがされてしまったとしても見つかり易いでしょうから。(本当はそんなキャストをした値など持ち回して、その内比較などした時点でエラーで停まって欲しいんですが) いずれにせよバグの卵を仕込んだようで気持ち悪いです(感想)
869 名前:デフォルトの名無しさん mailto:sage [2016/01/19(火) 17:03:44.18 ID:QRF0ukOE.net] 俺ならublasつかってpop_frontしたものからpop_backしたものを引く 正確にはpopはできないからrangeを使うことになるが
870 名前:デフォルトの名無しさん mailto:sage [2016/01/19(火) 20:30:59.08 ID:I2igp/Hj.net] そもiostreamの時点で遅いのだから 最適化とか気にしても仕方ない気がするが
871 名前:デフォルトの名無しさん mailto:sage [2016/01/19(火) 21:30:54.15 ID:LBmPehyf.net] iostreamのイテレーションでは最適化なんて出来ないだっろ
872 名前:デフォルトの名無しさん mailto:sage [2016/01/19(火) 22:45:17.98 ID:hRgr/fBZ.net] int a[][2] = { {1,2}, {3,4} }; の中身を vector<array<double, 2>> v; に渡したいんですが、forで回すのではなく1発で渡す方法ってないですか?
873 名前:デフォルトの名無しさん mailto:sage [2016/01/19(火) 23:07:55.63 ID:xZbak6Ni.net] intをdoubleに、はないんじゃないかなあ
874 名前:デフォルトの名無しさん mailto:sage [2016/01/19(火) 23:22:51.00 ID:hRgr/fBZ.net] >>872 しまった、タイポしましたorz
875 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 00:30:15.92 ID:NAm3D3i5.net] >>872 https://ideone.com/hWx03e
876 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 00:33:42.12 ID:NAm3D3i5.net] >>864 格好つけないでベタなコード書け その方が速い
877 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 00:33:42.79 ID:NAm3D3i5.net] >>864 格好つけないでベタなコード書け その方が速い
878 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 00:34:38.51 ID:NAm3D3i5.net] ミスった連投スマヌ
879 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 01:15:07.18 ID:CgeLzYDg.net] >>875 おお、ありがとうございます しかしこれは・・・実際使うわけにはいきませんね
880 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 05:48:14.00 ID:t0Y9mTVs.net] >>877 格好つけてないで ベタなコードだけで 毎日何かを頑張っていりゃ 書いていくんだ それでいいんだ 型に飲み込まれ エラーではじかれて それでもその手を離さないで バグがあるんだ みんなあるんだ 解はどこにある 君は休みを取れない
881 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 06:41:42.51 ID:HskUHurd.net] >>880 なんかメドレーになりそうで嫌だ
882 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 08:39:28.48 ID:NAm3D3i5.net] ウダウダやってる時間があったら 自分で初期値ありのadjacent_differnceでも作れ ただ自己満足したいだけなら続けてどうぞ
883 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 21:54:30.21 ID:gq7zZGSJ.net] CPUって普通の整数に比べて、2のn乗で割るの得意っすか?
884 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 21:54:59.79 ID:Ci1f4cma.net] 整数の種類による
885 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 22:01:53.08 ID:7pHwgTRU.net] >>883 まぁ一般的には得意じゃね?
886 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 22:08:23.19 ID:e8aI9wBz.net] >>883 シフトより普通の割り算の方が速いCPUやDSPを見たことが無いから、 まあ普通は2のn乗で割るのは得意と言えるでしょう >>884 整数の種類とは?
887 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 22:13:49.51 ID:1TVX6yTA.net] >>886 2の乗数か否か
888 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 22:15:13.15 ID:LUAhyj75.net] 書くのも簡単だよね ビットシフトするだけ
889 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 22:17:22.40 ID:e8aI9wBz.net] >>887 まあ確かに、 「2の乗数で割るのに比べて2のn乗で割るのが得意」 とは言えないわな 屁理屈
890 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 22:17:35.51 ID:Ci1f4cma.net] >>887 日本語読解能力の無い低能は去れ
891 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 22:19:24.38 ID:e8aI9wBz.net] シフトより乗算の方が速いCPUはあるから、 割る数が固定であれば割り算の代わりに乗算を行うことで特に得意とは言えないCPUも存在はする
892 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 22:24:51.80 ID:KVzlV0R1.net] 0初期化はxorだよね!
893 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 22:27:40.37 ID:e8aI9wBz.net] subでも
894 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 22:28:44.12 ID:Ci1f4cma.net] 割り算の話に反応して無条件にビットシフトなどと言い出す低能は 一週間穴にこもるべき
895 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 22:28:44.83 ID:I6UYKzry.net] 除数がコンパイル時定数で2の階乗ならシフト使うこともあるだろうけど そうじゃなきゃ割り算命令(または逆数乗算)使うから
896 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 22:38:02.27 ID:e8aI9wBz.net] >>894 >>895 コーディング時に2^nだってわかっていれば プログラマーがシフトに変更できるから普通は速い 明らかな2^nによる除算をシフトに置き換えられるコンパイラが存在するかどうかは知らん Visual Studio 2015 は無理そう
897 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 22:42:44.15 ID:e8aI9wBz.net] >>894 >>895 それから最近の高性能CPUだと、割る数が2^nの場合の除算命令は処理が早く終わるのが普通 スループットが向上しレイテンシも短くなる instlatx64.atw.hu/
898 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 22:45:09.29 ID:e8aI9wBz.net] てことで、 低能は >>894
899 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 22:54:20.69 ID:e8aI9wBz.net] 同じ割る数による除算がひたすら繰り返されるような処理だと、 2^nかどうか事前に判別して違うコードを走らせるってのも可能だね >>895 2の階乗って2だけど、2のべき乗の間違いだよね あと、変なところに誤爆したでしょ?
900 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 22:56:21.78 ID:I6UYKzry.net] >>897 >割る数が2^nの場合の除算命令は処理が早く終わるのが普通 例えばそのリストのどれを見ればそれが分かりますか? ちょっと見たけど分からなかった
901 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 22:58:02.65 ID:I6UYKzry.net] >>899 そう。べき乗の間違いでした
902 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 23:35:22.15 ID:I6UYKzry.net] Skylakeで試してみたけど除数が2^nかそうじゃないかでは処理時間に有意な差は見られないなあ
903 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 23:49:09.97 ID:Ci1f4cma.net] >>895 20年前に見たボーランドbccですら 2のべき乗以外の割り算でもシフトが使われるケースは有るのだが 嘘をつく前に生成されたアセンブリコードを確認したらどうだ?
904 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 00:16:53.77 ID:RQbtFNgK.net] はいはい20年前 割り算命令がそもそも無いとかあってもすごく遅いとかあったからね
905 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 00:21:15.60 ID:0HmD462y.net] Visual Studio 2015のx64でも unsigned intの9や10での割り算をシフトを使ったコードに置き換えるというのに
906 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 00:34:21.36 ID:RQbtFNgK.net] >>905 ホントか?試してみたけどdiv使ってるんだが
907 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 02:50:22.80 ID:RQbtFNgK.net] どうした?0HmD462y=Ci1f4cma どういうコードをどういうオプションでVS2015のx64でコンパイルしたら、unsigned intの9や10での割り算をシフトを使ったコードに置き換える って言うんだ?答えられなけりゃ20年前のbccの件も虚言と見なす >嘘をつく前に生成されたアセンブリコードを確認したらどうだ? とか言ったんだからそれくらいは当然だよな?
908 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 07:11:22.26 ID:0HmD462y.net] >>906 Releaseにしないとdivになる
909 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 07:12:57.80 ID:0HmD462y.net] ていうか普通のintですら単純な左右シフトじゃなくて複雑な計算になるだろ int_val / 8 の結果ぐらい確認してないのか
910 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 08:24:59.65 ID:TVvRrwr+.net] むしろ定数の割り算divを使うことがあるのかと でhttps://goo.gl/T8WrIL
911 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 09:20:33.26 ID:y+dNRHZw.net] 基本的に長文連投する奴は間違いが多い まともに確認すらせずに返答するしな
912 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 10:50:16.84 ID:RQbtFNgK.net] 話にならない連中だな >>908 Releaseでもdivだね >>909 unsigned intの9や10での割り算って言ってるだろアホ >>910 定数なんざ問題にしてねーよ 定数ならシフト使うこともあるって俺は>>895 で書いた
913 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 11:00:46.87 ID:TVvRrwr+.net] >>912 それは変数が9か10かを確かめるコードが出るって言ってるのか? さすがにそんなコードは出ないだろ unsignedの定数での割り算ならさらに簡単になるだろうしな
914 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 11:05:36.66 ID:RQbtFNgK.net] あっそうか定数で2^nじゃない場合について言ってたのか これはとんだ勘違いだった謝る
915 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 11:23:15.37 ID:TVvRrwr+.net] これはひどい
916 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 13:00:57.22 ID:X8Ey5hke.net] プログラマには自説を曲げてはならないという掟でもあるの?
917 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 14:02:30.61 ID:y+dNRHZw.net] 大マヌケな発言しちゃって恥かきたくないんだろ シフト演算とdivじゃ10倍以上の差があるのにな
918 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 14:15:16.66 ID:Ln13efwQ.net] 引数でもらったイテレータから、そのコンテナのメンバ関数を呼び出す方法はありますか?
919 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 14:55:52.13 ID:Ln13efwQ.net] list か forward_list を受け取ってどっちでも共通に動作するコードって簡単に書けるんでしょうか? 片方はemplace、もう一方は emplace_after だし、挿入位置違ってきますよね。 抽象的に、リンクで繋ぐ系のコンテナを貰って、条件に合うところに幾つか要素を挿入します(listでもforward_listでも結果は同じになります)って関数を自然に書けるものなのでしょうか? それともメタプログラミング必須ですか?
920 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 15:13:19.94 ID:zscSzf1M.net] 今確認してみたけど定数での割算は全部かけ算命令とシフト命令に変換されてるね
921 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 15:21:02.57 ID:F7LwJmHZ.net] >>919 STL(standard template library)の横断なんだからメタプロ必須 traits一個作るだけ
922 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 15:32:17.65 ID:+1Wa9Hdc.net] >>916 ほら、傲慢は美徳って言うし…(意味が違います
923 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 16:05:24.51 ID:RQbtFNgK.net] ぐちゃぐちゃしつこいね 定数の2^n以外の場合については俺が間違いだったことを認めるから 昨日のe8aI9wBzは俺の>>900 の質問に答えてくれないかな
924 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 16:16:04.74 ID:RQbtFNgK.net] >>902 に書いた通り 俺I6UYKzry=RQbtFNgKが試してみた限り Skylakeのdivでは2^nかどうかでは差は見られないんだが 差が出る「最近の高性能CPU」って例えば?是非教えてほしいな
925 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 16:40:30.24 ID:zscSzf1M.net] 2^nかどうかでは変わらないけど割る数によって速さは違った 結果が小さくなる方が速く終わるっぽい
926 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 17:15:24.08 ID:RQbtFNgK.net] >>925 ちなみにCPUは何ですか? こっちでは(Skylake+GCC4.8.4)では結果が小さくなるようにしてもdiv系命令使ってる限り差は出ないけど
927 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 17:40:25.35 ID:zscSzf1M.net] Intel(R) Core(TM)2 Duo CPU P8700 1.c unsigned int a (unsigned int a) { return 1111111 / a; } 2.c unsigned int a(unsigned int); int main () { int i; for (i = 0; i < 100000000; i++) a (10000000); return 0; } このコードだとa(1)とか10000000とかが一番速く終わって2が一番遅くなる
928 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 17:44:54.10 ID:zscSzf1M.net] Intel(R) Atom(TM) CPU N280 @ 1.66GHz これだと全部同じだった
929 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 18:02:27.03 ID:y+dNRHZw.net] divを最適化で置き換え直す必要性も16bit以上のdivの速度が一定でない事も intelの文書に書いてあるよ 知らないにしても他の人みたいに動かして確認すればいいのに何なんだコイツは
930 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 18:05:51.20 ID:Ln13efwQ.net] forward_list、思ったより使えない back()やsize()すら無いって・・・
931 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 18:11:37.46 ID:0O01DQba.net] テンプレートメタプログラミングのテストってどうやってますか?
932 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 18:43:50.40 ID:E9KCKHCx.net] >>916 そのような自説を持ってるのはQだけです だが最後に自分の誤りを認識した時点で素直に謝れるメンタル だ け は凄いと思うわ
933 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/01/21(木) 18:55:00.91 ID:ypubXGFS.net] >>931 static_assert使え
934 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 19:27:35.76 ID:Ln13efwQ.net] >>921 メタプロはまだぼくには早いなぁ
935 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 19:41:52.93 ID:hKcolSLC.net] weak_ptrってlock()して有効かどうかをif文とかで調べてから使うのが正しい使い方ですよね。 つい面倒なので wp.lock()->hoge() と横着しちゃうんですが、いつか痛い目みそうな予感がします。 上手い具合に何とかする方法ないでしょうか?
936 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/01/21(木) 19:45:22.06 ID:ypubXGFS.net] if (auto ptr = a.lock()) { ... }
937 名前:デフォルトの名無しさん mailto:age [2016/01/21(木) 20:09:41.71 ID:ypubXGFS.net] あげ
938 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 20:34:19.36 ID:LqtdmCnC.net] >>930 size( ) はまだしも back( ) のためのポインタケチるためのものだし、当たり前だろ
939 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 21:59:56.82 ID:Ln13efwQ.net] ミニマlist
940 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 23:10:02.14 ID:H8Alaf9u.net] >>936 >if (auto ptr = a.lock()) copy elisionが期待できるとしても無駄なコピー/ムーブが 発生しうる書き方はどうも落ち着かない。 auto &&と書きたくなってくる。
941 名前:デフォルトの名無しさん mailto:sage [2016/01/21(木) 23:35:41.37 ID:ySY5R7YZ.net] えっ
942 名前:デフォルトの名無しさん [2016/01/22(金) 06:57:40.42 ID:xsHc+uK/.net] weakの生存チェックが必要ならsharedにしたら
943 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 07:49:31.44 ID:KaWUxaNQ.net] >>942 そんなどこぞの女王みたいな事言ってたら、デストラクタが暴動を起こすぞヽ(^。^)ノ
944 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 07:54:12.64 ID:nKA5Ublh.net] ↑馬鹿
945 名前:935 mailto:sage [2016/01/22(金) 10:14:57.31 ID:5LnUGiwJ.net] >>936 今までそうしてきました。 elseの中でどのクラスのどの関数なのかエラーメッセージを出したりしてたんですが、 面倒臭くなって質問した次第です。
946 名前:935 mailto:sage [2016/01/22(金) 10:17:26.65 ID:5LnUGiwJ.net] >>942 クラスで互いに参照を持たせたいんでweak_ptrも必要なんです
947 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 18:21:29.83 ID:iI4n/Grb.net] 話を聞いている限り子にsharedで親にweakもたせる案件のような気が
948 名前:935 mailto:sage [2016/01/22(金) 20:25:00.39 ID:5LnUGiwJ.net] 親と子というのはそれぞれ管理する側と管理される側のことですか? 相互参照させる場合、前者は後者への強参照を、後者は前者への弱参照を メンバとして持つのが普通だと思ってたのですが、もしかして逆なんですか?
949 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 21:19:55.44 ID:gy9aPLY5.net] >>948 それだと親が生きてる限り子への参照が無くならない。 明示的に子の削除をしなければならなくなる。 >>947 なら子への参照が無くなればその子は消える。 全ての子が消えれば親も自動的に消える。
950 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 21:59:23.10 ID:9qqofano.net] 子が生きている間は親も生きていると考えるのが普通だから 子が親のweak_ptrを持つのはあまり旨みがないというか、生ポインタでも良いんじゃね?ってなる
951 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 22:06:48.94 ID:9qqofano.net] weak_ptrからshared_ptrを生成できるので 子が親のshared_ptrを他のオブジェクトに渡すとかという場面で 生ポインタじゃなく、子が親のweak_ptrを持つのも一応意味があるっちゃあるが 逆の方が何かと都合がよいことが多いのだ なにせ子が生きている間は親も生きているわけだろうから 親をweak_ptrで持っていてもnull_ptrが返ってくることは無いので
952 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 22:10:32.65 ID:63yfy9By.net] cpp-lang.sevendays-study.com/problemex4.html このサイトの問題4.4で、何も入力せずenterを押すと入力を終えるの部分をどうやれば作るか教えて下さい while (1) { cin >> a; if (a.length()==0) { break; } このように入力した文字をaにいれてaの長さが0ならループを抜けるようにしたのですがうまくいきません
953 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 22:17:40.62 ID:fbzf1CVx.net] 改行文字にすりゃええやん
954 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 22:26:02.40 ID:63yfy9By.net] >>953 改行文字とはendlのことですか? 判定する所でa==endl としてもエラーが出ます
955 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 22:33:49.62 ID:iI4n/Grb.net] >>948 依存性が逆に見えたから言ってみただけ Observerパターンなら親がweak持てばいいけど違うなら逆じゃないよん 循環参照は機能分割が不十分な事による設計ミスのが多いよ
956 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 22:42:11.03 ID:BMlJwOmj.net] 親子の関係にshared_ptr,weak_ptrを 持ち出すあたりが既に設計の誤りの可能性大。 というかshared_ptr使ったコードは高確率で糞コード。
957 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 22:45:56.01 ID:iI4n/Grb.net] >>952 >>954 string str; while( getline(cin,str) && str.length() ){ 処理 }
958 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 22:58:26.71 ID:63yfy9By.net] >>957 すみません、よくわかりません getline関数はこのサイトでまだ扱ってないので使い方がわからないのと、どうしてそのコードで入力が空白かどうか判定できるのでしょうか?
959 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 23:06:21.99 ID:iI4n/Grb.net] >>958 getline(cin,str) // cinの入力を一行strに取り込む(改行文字なし)、失敗で偽 str.length() // 1文字以上なら真、0文字なら偽 このスレは怖い人がいっぱいいるから質問するなら下のにしなさい 【初心者歓迎】C/C++室 Ver.97【環境依存OK】 peace.2ch.net/test/read.cgi/tech/1439849418/l50
960 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 23:12:12.68 ID:PuO012nm.net] >このスレは怖い人がいっぱいいるから 一番攻撃的なのはお前なんだが
961 名前:デフォルトの名無しさん mailto:sage [2016/01/22(金) 23:28:13.82 ID:63yfy9By.net] >>959 理解できました。 ありがとうございます
962 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 00:09:49.18 ID:oOoz6Peh.net] >>960 ずいぶん攻撃的だねえ・・・
963 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 00:10:09.38 ID:ACxJywqs.net] インテルのやつはビットシフトよりテーブルにした方が速い、 希ガス
964 名前:935 mailto:sage [2016/01/23(土) 00:54:21.22 ID:M1o1eQTV.net] >>956 を見てハッとしました。たぶん、いや確実に今書いてるコードは糞なんだと思います。 この糞コードを書いたときの流れはこんな感じでした。 クラスもインスタンスもたくさんあってメモリリーク怖いから、とりあえずインスタンス化には スマートポインタshared_ptr使っとこう。 ↓ そういえばクラス関係は 国→県→市→番地 みたいな階層構造になってるんだった。 (左側クラスは右側クラスを複数含む) ↓ じゃあメンバでvector<shared_ptr<class>を持たせよう。 ↓ 逆方向 国←県←市←番地 にものアクセス欲しいな。 ↓ shared_ptrメンバじゃ循環参照になってしまうから、weak_ptrメンバにしとくか。 ↓ weak_ptrいちいちlock()すんのめんどくせー。 ↓ >>935 に至る。 まぁ事実まともな設計とか全くしたことない素人なんですが、改めて書き下してみると酷いな・・・
965 名前:935 mailto:sage [2016/01/23(土) 00:59:37.64 ID:M1o1eQTV.net] 今一度足りない頭でクラスの所有関係と各クラスが持つべきメンバについて 考えてみたのですが、こんな感じで合ってるでしょうか? 親クラス(管理側)をP、子クラス(非管理側)をCとして、 @PはCをメンバとして所有する。複数所有したいならvector<C>とする。 ACはPへアクセスする必要があるなら、Pへの参照メンバを持たせる。 BPのvector<C>メンバの並び順をCの内部状態によって変えたいなら、vectorではなくlistにする。 Bが正しいか気になります。
966 名前:935 mailto:sage [2016/01/23(土) 01:03:44.65 ID:M1o1eQTV.net] ここまで考えて思ったのですが、クラスメンバにスマートポインタがあるのは所有関係を きちんと考えていない、つまり設計が不十分な可能性を疑うべき、ということでしょうか。 >>955 さんの >循環参照は機能分割が不十分な事による設計ミスのが多いよ や、>>956 さんの >というかshared_ptr使ったコードは高確率で糞コード。 はそういう意味だったんですかね。 そうするとスマートポインタが主として登場すべき場面とは、関数内でテンポラリ的にインスタンスを作り それを他の関数に渡す等のごにょごにょした作業をしたいときなんでしょうかね? なんかレスが多くなってすみませんが、指導していただけると助かります。
967 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 02:07:22.97 ID:ACxJywqs.net] このスレは荒れる…! 現実のアーキテクチャで走るプログラムは (1) アルゴリズムと、(2)データ構造と、(3)スレッド間通信 からなる このうち、(1)はの範囲は処理の順序が命なのであって、 設計完了=処理の順序が明らか、ということなので設計完了したならばスマポの出番など無い 一方(3)は、スレッドAからスレッドBにデータを渡しっぱなしにできたら 同期化が簡単になって無駄な実行時コストも抑えられるからスマポの出番と言える ていうかimmutableなオブジェクトを他のスレッドで破棄させるケースぐらいしか スマポの使用は正当化されない 残りの(2)は、(1)に属することもあれば(2)に属することもある (スマポ自体のデータ構造とか、カーネル内のデータ構造とかは(2)の範疇 スマポ自体の是非とは関係ないので省略
968 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 02:09:35.49 ID:oOoz6Peh.net] >>964-965 循環参照のミスというのは同層のことで、親子のただの相互参照は一般的だよ Bは速度がいらないならvector、他はそんなに問題あるとは思えない weak_ptrのエラー分岐が億劫ならマクロにしたらというぐらい 人に教える程の立場でもないのでこれぐらいにしておきます
969 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 02:12:14.42 ID:ACxJywqs.net] 訂正; 誤:残りの(2)は、(1)に属することもあれば(2)に属することもある (スマポ自体のデータ構造とか、カーネル内のデータ構造とかは(2)の範疇 正:残りの(2)は、(1)に属することもあれば(3)に属することもある (スマポ自体のデータ構造とか、カーネル内のデータ構造とかは(3)の範疇 あと補足で、std::unique_ptr<T>は(1)の範疇でも実装上のテクニックとして多用することもあるが あんまり賢くないのでここではスマポに含めないものとする、
970 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 06:32:51.71 ID:9P3xRRKy.net] >>964 shared_ptrを使うのはその名の通り特定のオブジェクトによる所有や集約の関係ではない場合、生存期間の管理が疎結合の場合に使う 国の知らない間に一部の市が消えることがあるか? 市より先に国が消えることがあるか? 国→県→市→番地 なら多くの場合は「国が複数の県を所有または県は国に集約」のパターンになることが多い
971 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 08:02:49.16 ID:+qmFdC28.net] スマポって作ったオブジェクトをいずれ殺さなきゃならないときに使うイメージだわ 殺す必要がない(vectorのメンバとして作られるからあとで自動で死ぬとか)なら子が持つ親のポインタはスマポじゃなくて生ポインタでいいんじゃない? ポインタじゃなくて参照型のメンバ変数持ってルートノードは自分への参照でもいいけど、==演算子のオーバーロードは面倒くさそうだし結局親ノードの判定にポインタの比較しそうな気がするわ
972 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 10:58:19.45 ID:xWQTZZB9.net] 抜き身の刀だらけの相談室
973 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 11:41:45.07 ID:2xi+SZqr.net] 『一つのパーティションにつき一つの要素のみ』って英語のコメントでどう書けばいいですか? // Only one element by one partition. 前置詞わかんないです><
974 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 11:56:10.39 ID:BpJ08GBs.net] // the each partitions only has one element. 自信ない
975 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 12:05:54.61 ID:bbKQS1co.net] // one element == one partition // A partition has only one element // Only one element for(in) each partition // At most one element can be appeared in each partition // A partition has at most one element // Multiple elements are prohibited in a partition // 一つのパーティションに一つの要素だ。日本語も読めない馬鹿はクソして寝ろ
976 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 12:32:51.86 ID:Tt4ej2Ee.net] パーティションてのは区画じゃなくその仕切りのことを言うわけだが、間違いだよな? Only one element in one section
977 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 12:40:10.50 ID:9P3xRRKy.net] >パーティションてのは区画じゃなくその仕切りのことを言うわけだが いえそれはパーティションでなくpartitionです 用語と一般名詞の区別ぐらいはした方がいい
978 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 12:42:14.32 ID:Tt4ej2Ee.net] >>977 働くならパーティションのある会社の方がいいぞ?
979 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 12:44:29.00 ID:VPAh/uPo.net] Only one element is for each patition.
980 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 12:44:52.04 ID:9P3xRRKy.net] なるほど 文脈を読まずに単語レベルで反応してしまったんだろうな
981 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 12:48:38.88 ID:Tt4ej2Ee.net] 一般名詞とか言っててそれか 頭大丈夫か?
982 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 12:48:39.35 ID:ZeOvtoAd.net] スレ違いなのでよそでやれ。
983 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 13:42:00.33 ID:7KDEJB/l.net] C++こそ至高の頂
984 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 13:43:05.61 ID:7KDEJB/l.net] バカの壁を突破できんと使いこなせんのよ
985 名前:964 mailto:sage [2016/01/23(土) 14:42:34.05 ID:M1o1eQTV.net] >>967 >>968>>970 ありがとうございます。さっそく糞コードを修正します。 いやはやとんでもない勘違いをしていた・・・
986 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 16:52:12.93 ID:2O2OeDHJ.net] std::partition_pointやで!!
987 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 19:41:20.94 ID:2xi+SZqr.net] なるほど、partitioned rangeが正しい英語ですね Only one element can belong to each partitioned range. こうかな
988 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 19:50:19.75 ID:MQWxukSB.net] one element is in the only one patitioned range.
989 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 20:00:22.29 ID:xc9KTHaP.net] さあw patitioned rangeなんて表現聞いたこと無いんだが
990 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 20:07:07.21 ID:xc9KTHaP.net] patitionってもともとrange的な意味を含んでるから 仕様上でpatitionの意味がはっきりしてればわざわざrangeつけるのは普通の表現としてはクドい 『一つのパーティションにつき一つの要素のみ』なら each partition can have only one element. とかでいいんじゃないか?
991 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 20:24:11.82 ID:xc9KTHaP.net] std::partition_pointとかの説明で出てくるpatitioned rangeって 「patitioned(部分集合化)されたrange」のことだからな >>973 のいうパーティーションはそれぞれの部分集合のことだろ
992 名前:973 mailto:sage [2016/01/23(土) 20:30:47.80 ID:2xi+SZqr.net] >>990 ありがとうございました。この問題は対話を通じ、双方が同意できる恒久的な解決がなされました。
993 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 21:46:41.75 ID:2O2OeDHJ.net] 恒久的な解決といっても何がどう恒久なんだかようわからん国もあるけどな。
994 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 21:52:02.81 ID:xc9KTHaP.net] 1つのパーティションに0個の要素っていうのがあり得るのかどうかでも表現は変わってくるわな
995 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 23:04:39.12 ID:HdItgJjm.net] ジスレ立てますか
996 名前:デフォルトの名無しさん mailto:sage [2016/01/23(土) 23:16:08.61 ID:HdItgJjm.net] C++相談室 part122 peace.2ch.net/test/read.cgi/tech/1453557975/
997 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 00:03:08.58 ID:XILi4z/P.net] >>993 おっとQの悪口はそこまでだ
998 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 00:18:02.59 ID:ZhXA5MpP.net] plam
999 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 01:39:42.78 ID:+srqsch5.net] 999
1000 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 04:52:41.80 ID:vt7CmcBy.net] 1000 イタダキ!
1001 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。