1 名前:デフォルトの名無しさん (ワッチョイ f37a-QmV0) mailto:sage [2017/03/31(金) 08:47:49.65 ID:UkLjKqcm0.net] 次スレを立てる時は本文の1行目に以下を追加して下さい !extend:on:vvvvv:1000:512 C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part129 echo.2ch.net/test/read.cgi/tech/1483940967/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.100【環境依存OK】 echo.2ch.net/test/read.cgi/tech/1478440682/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
610 名前:デフォルトの名無しさん (ワッチョイ 179a-VrB2) mailto:sage [2017/06/27(火) 20:10:45.68 ID:bJ//gE7J0.net] x86の64bitモードは32bitの方が速い命令がある キャッシュ容量とかメモリ帯域とかを考えても、絶対に32bitで足りるなら、32bitを選んだ方がいい
611 名前:デフォルトの名無しさん (オッペケ Sr0b-jRIn) mailto:sage [2017/06/27(火) 21:37:34.10 ID:ExZegnFlr.net] >こいつが噂のMZか >一人芝居の Qの一人芝居はまだ余興として見られるがもう一人のクソコテの一人芝居は痛々しくて見ていられない
612 名前:デフォルトの名無しさん (ワッチョイ 9fc3-NIhq) mailto:sage [2017/06/28(水) 02:28:02.75 ID:Irk2C7ZK0.net] >>596 型の振る舞いをできる限り制限するのは誤りを起こさない、起こしても明確なエラーにするのが目的だと思うんだけど、 符号なし整数型にそういった機能は無くて実際の助けにはならないから、こういう議論が起こる。
613 名前:デフォルトの名無しさん (ワッチョイ d76f-ADZD) mailto:sage [2017/06/28(水) 04:29:23.47 ID:matoew650.net] むしろsignedにしておけば不正に負の値が入れられた場合チェックしやすい
614 名前:デフォルトの名無しさん (ワッチョイ 9f89-RNzd) mailto:sage [2017/06/28(水) 07:46:44.59 ID:Aii/VoAq0.net] 符合つき整数との比較や算術演算した際に、warning出たり符合なしに変換されたりと面倒なことが多いから、定義域が非負という理由だけではわざわざ符合なしにはあまりしたくない。
615 名前:デフォルトの名無しさん (スプッッ Sd3f-oVeJ) [2017/06/28(水) 08:16:59.41 ID:MovvcuP9d.net] googleのスタイルだと整数は符号ありを使えってなってる
616 名前:デフォルトの名無しさん (スップ Sd3f-VrB2) mailto:sage [2017/06/28(水) 13:11:58.44 ID:4LULrFdtd.net] APIも64bitは符号ありが多い
617 名前:デフォルトの名無しさん (ワッチョイ 7f91-fiUu) [2017/06/28(水) 14:24:20.43 ID:qTRul81R0.net] Vvector<vector<float>> tensor; のようなテンソルを、1列にまとめて void Vector_Func(vector<float> &v){} ベクトルの関数の引数にしたいんだけどさ これって、新たにVector<float>型のベクトルを定義してそこにベクトルの中身をコピーし、それを利用して関数を呼び出して、さらにもとのテンソルにコピーして戻すしかないのかな? 2度のコピーにかかる時間を短縮できる方法があったら誰か教えて!!!
618 名前:デフォルトの名無しさん (ワッチョイ bfaf-7LQj) mailto:sage [2017/06/28(水) 14:26:13.68 ID:+YCVI2Ik0.net] typedef vector<vector<float> > tensorf; それとも右辺値参照的な話だろうか
619 名前:デフォルトの名無しさん (ワッチョイ 9f9f-Yx6S) mailto:sage [2017/06/28(水) 14:29:19.59 ID:eX7vr1Kz0.net] 参照になっているなら直接vを弄るだけでコピーする必要もないと思われ
620 名前:デフォルトの名無しさん (ワッチョイ d76f-ADZD) mailto:sage [2017/06/28(水) 15:12:35.77 ID:matoew650.net] >>610 1列にまとめる必要があるという前提ならどうしようもない気がする vector<vector<float>>を止めてデータの並びが最初から1列にまとまってるようなテンソルクラスを作るか、 どっかの行列ライブラリを転用するんだな
621 名前:デフォルトの名無しさん (ワッチョイ 9f9f-Yx6S) mailto:sage [2017/06/28(水) 16:00:31.95 ID:eX7vr1Kz0.net] 参照渡しでvが正常に得られるということは、vectorが値の参照を許容しているとも言える。
622 名前:デフォルトの名無しさん (ワンミングク MM7f-Rrwd) mailto:sage [2017/06/28(水) 16:46:10.90 ID:cWs7iztoM.net] >>610 iteratorパターンかrange viewのようなものを作る
623 名前:デフォルトの名無しさん (オッペケ Sr0b-jRIn) mailto:sage [2017/06/28(水) 18:00:52.06 ID:lG20CtJar.net] 612は健常者
624 名前: ◆QZaw55cn4c (ワッチョイ 179a-jSYe) mailto:sage [2017/06/28(水) 22:05:12.76 ID:y88Z2FQA0.net] >>598 その64bit Linux に乗っているコンパイラは何?
625 名前:デフォルトの名無しさん (ササクッテロラ Sp71-kiAr) [2017/06/29(木) 22:16:27.01 ID:3dQByb1op.net] C++の数値計算のコード読んでくとreadmeにSiam journal って雑誌の引用見かける事がやたら多いんだけどc++やる人は必読の雑誌だったりします?
626 名前:デフォルトの名無しさん (ワッチョイ 016f-bKJX) mailto:sage [2017/06/30(金) 01:47:04.93 ID:66+xb1tk0.net] C++ってより言語を問わず数値計算やる人だな 高速性が要求される数値計算はC++が使われることが多いってだけ
627 名前:デフォルトの名無しさん (ワッチョイ 46e4-ejav) mailto:sage [2017/06/30(金) 01:56:16.60 ID:/WxXdso/0.net] まず数学力を鍛えたほうがいい
628 名前:デフォルトの名無しさん (オッペケ Sr71-F+4p) mailto:sage [2017/06/30(金) 08:34:53.69 ID:2shJEbz+r.net] これがアスペというやつだな
629 名前:デフォルトの名無しさん (ワッチョイ 921b-zTMA) mailto:sage [2017/07/01(土) 07:18:19.26 ID:C6ffpB7m0.net] 式テンプレートを勉強中です。 X(i) op Y(i)だけで結果が決まる場合はともかく 行列の逆行列のような一要素の計算に行列全部が影響するような計算を こいつで実装する意味ってありまつか? 実装例とかあったら教えてください
630 名前:デフォルトの名無しさん (ワッチョイ 06af-D66J) mailto:sage [2017/07/01(土) 07:25:20.19 ID:qtP/3v2i0.net] 意味というか行列の逆行列のij成分はij余因子を行列式で割った値だと言うことを知っていれば NxN行列の逆行列の各成分はij余因子行列である(N-1)x(N-1)行列の行列式の計算になるから 数学的帰納法的にテンプレート化可能
631 名前:デフォルトの名無しさん (ワッチョイ 42aa-wjSU) mailto:sage [2017/07/01(土) 07:49:52.59 ID:nS8nnQe50.net] >>623 君は説明がうまいね
632 名前:デフォルトの名無しさん (ワッチョイ 06af-D66J) mailto:sage [2017/07/01(土) 08:05:35.58 ID:qtP/3v2i0.net] いやそれほどでも・・・///
633 名前:デフォルトの名無しさん (ワッチョイ 42aa-wjSU) mailto:sage [2017/07/01(土) 08:28:19.10 ID:nS8nnQe50.net] 式テンプレートで正項と負項をバサッと消し合うようなことができないかと考えて挫折したなあ
634 名前:デフォルトの名無しさん (ワッチョイ 921b-zTMA) mailto:sage [2017/07/01(土) 08:44:48.56 ID:C6ffpB7m0.net] >>623 いや、その余因子を求めることも、そこから行列式を求めるにも、全行列値が必要になるわけだし、 そもそも、余因子行列式の計算はNxN->3x3までの変換が再帰的な計算でスタックを使いたおすことになるので、 ヒープに一時オブジェクトを使わずにすむといという式テンプレートのメリットが全くないんじゃないんですか? だいたい余因子行列式の除算なんて効率悪すぎて数値計算じゃ使いませんよ。 話をはっきりさせるために、ここは逆行列計算をGauss-Jordanの掃き出し法に限定しましょうや。 >数学的帰納法的にテンプレート化可能 どういう意味です? 数学的帰納法とは、 i=1のときf(1)が成立する i=nのときf(n)が成立すると仮定すれば i=n+1のときも成立することを証明して、一般的にf(n)が成立とする
635 名前:デフォルトの名無しさん (ワッチョイ 921b-zTMA) mailto:sage [2017/07/01(土) 09:09:28.46 ID:C6ffpB7m0.net] >>626 ちょっと、誤解を招きかねないんで、 余因子行列式が再帰的云々と書きましたが、 余因子に限らず、行列式の計算そのものが再帰的という意味です。 だから、行列式計算そのものがやたら時間がかかる。 大学の試験の答案とかで、途中点をかせぐために(連立方程式を解いて計算間違いするより加点が期待できる)、 余因子行列式/行列式 を明記したりしますが、このやり方はせいぜい手計算でできる4x4程度の話で、 それ以上だと掃き出し法に比較して極端に非効率ということです。
636 名前:デフォルトの名無しさん (オッペケ Sr71-F+4p) mailto:sage [2017/07/01(土) 09:32:16.00 ID:T5yR4indr.net] >>627 >効率悪すぎて数値計算じゃ使いませんよ 「式テンプレートの勉強」を「汎用数値計算ライブラリを式テンプレート化するための勉強」にすりかえられても… >どういう意味です? ヒント:回答者は日本語を正しく使えない
637 名前:デフォルトの名無しさん (ワッチョイ 42aa-wjSU) mailto:sage [2017/07/01(土) 10:10:34.74 ID:nS8nnQe50.net] 再帰的に→帰納的に→帰納法的に jk
638 名前:デフォルトの名無しさん (ワッチョイ 0111-WwN4) mailto:sage [2017/07/01(土) 12:42:17.52 ID:RfHKhQjf0.net] 数学用語はよくわからんけど >行列の逆行列のような一要素の計算に行列全部が影響するような計算を >こいつで実装する意味ってありまつか? ない というか式テンプレート勉強するというなら自分で軽く実装してみるべきだよ ↑の場合は速度がどうこう以前の問題だとわかるから
639 名前:デフォルトの名無しさん (オッペケ Sr71-F+4p) mailto:sage [2017/07/01(土) 13:26:13.77 ID:T5yR4indr.net] >再帰的に→帰納的に これはひどい 再帰的と帰納的は関係ないし、数学的帰納法は帰納的でも帰納法でもない >>こいつで実装する意味ってありまつか? >ない 確かに質問に対する明確な回答なのだが、何かこう足りないような…
640 名前:デフォルトの名無しさん (スッップ Sd62-TIEP) mailto:sage [2017/07/05(水) 14:15:27.50 ID:/9Xtn5yvd.net] scanfより速い標準入力ってない? スペース区切りの大量のintをベクトルにいれたいんだけどループ回してscanfがどうやっても最速なのかな
641 名前:デフォルトの名無しさん (ワッチョイ 6e1c-4/kT) [2017/07/05(水) 15:44:26.17 ID:4h6UtxrL0.net] istream_iterator<int> first(cin), last; vector<int> wish_of_632{first, last};
642 名前:デフォルトの名無しさん (スッップ Sd62-TIEP) mailto:sage [2017/07/05(水) 16:39:36.49 ID:/9Xtn5yvd.net] >>634 試してみるサンクス
643 名前:デフォルトの名無しさん (オッペケ Sr71-F+4p) mailto:sage [2017/07/05(水) 16:59:04.15 ID:UhWlQCq1r.net] Visual Studio 2017のリリースビルドで試したが>>634 の方法は倍ほど遅いような
644 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-3ntT) mailto:sage [2017/07/05(水) 17:16:22.28 ID:2aUA7xnEd.net] fread, fgets, getchar
645 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-3ntT) mailto:sage [2017/07/05(水) 17:22:18.00 ID:2aUA7xnEd.net] int n = 0; if ('0' <= ch && ch <= '9') { n *= 10; n += ch - '0'; } else { put_int(n); n = 0; }
646 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-3ntT) mailto:sage [2017/07/05(水) 17:31:38.49 ID:2aUA7xnEd.net] GetStdHandle(STD_INPUT_HANDLE)
647 名前:デフォルトの名無しさん (ワッチョイ c2f0-wjSU) mailto:sage [2017/07/05(水) 18:03:51.31 ID:IVGCprss0.net] 大量=一行10000個程度の数字が10000行ほど?
648 名前:デフォルトの名無しさん (オッペケ Sr71-F+4p) mailto:sage [2017/07/05(水) 18:09:07.25 ID:UhWlQCq1r.net] 自前が最速なのだろうが汎用性を考えるとお勧めできない ある環境での適当な100万個の整数読み込み時間: istream_iterator : 470ms scanf : 230ms fgetc+自前スペース解析+atoi : 175ms 最初に全部char配列に読み込み+片山式パース: 32ms
649 名前:デフォルトの名無しさん (ワッチョイ 46e4-ejav) mailto:sage [2017/07/05(水) 19:23:43.26 ID:rZavNuQl0.net] 何のチェックもしないscanf,printfのやり方が最速なのは自明
650 名前:デフォルトの名無しさん (ワッチョイ 6111-wjSU) mailto:sage [2017/07/05(水) 20:06:49.25 ID:tZeoWZVY0.net] >>641 >最初に全部char配列に読み込み+片山式パース: これって随分早いけどパースより読み込みが効いてるんじゃないの 恐らくfgets使ってるんだよね
651 名前:デフォルトの名無しさん (オッペケ Sr71-F+4p) mailto:sage [2017/07/05(水) 20:09:41.12 ID:UhWlQCq1r.net] >>643 fgetsでなくfreadで読んだ なおこの全読み込み方式で数値の切り出しをatoiにすると80msだったので やはりI/Oの効率化が支配的と理解した
652 名前:デフォルトの名無しさん (ワッチョイ 6111-wjSU) mailto:sage [2017/07/05(水) 21:04:30.49 ID:tZeoWZVY0.net] >>644 てことは fgetc+自前スペース解析+atoi :175ms fread++自前スペース解析+atoi :80ms 読み込みのオーバーヘッドで175-80=95msロスしてるわけか atoiは変換不能文字とか16進とかチェックしてるからその分遅くなるんだろう 自前で10進のみに特化させるのが一番なんだけどもな
653 名前:デフォルトの名無しさん (スップ Sdc2-Pf3w) mailto:sage [2017/07/05(水) 21:05:36.71 ID:O+22iBefd.net] 複数スレッドに分けてアセンブラの自作関数で回す
654 名前:デフォルトの名無しさん (スップ Sdc2-Pf3w) mailto:sage [2017/07/05(水) 21:07:40.11 ID:O+22iBefd.net] 各スレッドも、複数数値を並列で動かす
655 名前:デフォルトの名無しさん (スップ Sdc2-Pf3w) mailto:sage [2017/07/05(水) 21:08:36.26 ID:O+22iBefd.net] C++スレだった すまんこ
656 名前:はつみつ餃子 ◆8X2XSCHEME (ワッチョイ 8215-CicO) mailto:sage [2017/07/05(水) 21:23:34.13 ID:YH3wEyty0.net] どういう風に並列化できる?
657 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-3ntT) mailto:sage [2017/07/05(水) 21:26:33.09 ID:2aUA7xnEd.net] 処理すべきブロックに対して、ちょうどいい区切りで、等分割に近い分割をやって、それぞれを別々のスレッドで処理する。 スレッドがすべて終わったら、処理結果を結合する。
658 名前:デフォルトの名無しさん (ワッチョイ 6111-wjSU) mailto:sage [2017/07/05(水) 21:28:54.47 ID:tZeoWZVY0.net] スレッドもインラインアセンブラもC++の範疇だよ ただIOはロックされるから解放待ちの時間が出来てしまう ラインごとに随時読み込んでスレッド振り分けかな パースに時間がかかるならそれも悪くないんだろうけど簡易atoi程度じゃ差は出にくい
659 名前:デフォルトの名無しさん (ワッチョイ c21b-8PSv) mailto:sage [2017/07/05(水) 21:34:38.31 ID:slEXI2jh0.net] 原理的にはブロッキングIOのファイル読み出しの待ち時間を有効に活用すれば それが最速だけど並列化のオーバーヘッドを最小にしようと思ったら OS毎あるいはファイルIOのライブラリ毎に特化しなきゃならない気がするので面倒くさい
660 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-3ntT) mailto:sage [2017/07/05(水) 21:40:11.90 ID:2aUA7xnEd.net] #ifdef _WIN32 // Windowsの場合 ... #elif ...
661 名前:デフォルトの名無しさん (ワッチョイ c99a-Pf3w) mailto:sage [2017/07/05(水) 23:16:04.44 ID:icFnMa9s0.net] 各スレッドも、前から順番にやってたら遅い 各スレッドのなかでも複数を同時にやらないと 例えば>>638 みたいなのだと、各ステップが終わらないと次のステップに進めない 演算の遅延があるので、各演算ポートはスカスカになる HTで少しはマシにはなるが、それでもスカスカ 整数演算は同時に3個〜4個出来るのだ これを活かさないと まあいずれにしろファイルなんか使ってたら読み込み時間がほとんどなので、ガリガリにアセンブラで組む価値もないけど
662 名前:デフォルトの名無しさん (ワッチョイ be91-DoE+) mailto:sage [2017/07/05(水) 23:24:23.81 ID:9lrezxXx0.net] C++のすごい人お願い教えて!!!functionにメンバ関数を代入するにはどうすればいいのか全然わからんのや!!! #include <iostream> #include<functional> using namespace std; struct C{ int i=0; function<void()> f; void A(){ cout << i;} void B(){ f=A;//ここで「reference to non-static member function must be called; did you mean to call it with no arguments?」 //関数A();をstaticにすればエラーは消えるものの、C::A()を呼びたいのではなくc.A();を呼び出したい f(); } }; void main(void){ C c; c.B(); }
663 名前:デフォルトの名無しさん (ワッチョイ 06a6-F+4p) mailto:sage [2017/07/05(水) 23:25:58.77 ID:pl4REjuI0.net] 釣りならもっと議論の余地のあるネタにしろ
664 名前:デフォルトの名無しさん (ワッチョイ 06a6-F+4p) mailto:sage [2017/07/05(水) 23:36:21.55 ID:pl4REjuI0.net] f = [this]{A();}; c.f = [&]{c.A();}; 二度と来んなカス
665 名前:デフォルトの名無しさん (ワッチョイ b7ea-rvkC) mailto:sage [2017/07/06(木) 09:30:12.16 ID:x5DiEtc40.net] ファイル読み取りの待ち時間を別スレッドに割り当てるってのは、 誰もが考えつく話だけど、誰もがどうでもいいやと投げ出す話。
666 名前:デフォルトの名無しさん (ワッチョイ f7e2-pw7F) mailto:sage [2017/07/06(木) 20:44:37.47 ID:3RH7JsNg0.net] テンプレートクラスの継承で↓みたいなことをやりたいんですが エラーが出てコンパイルが通りません どこが間違っていますか?もしくはもっと良い方法はありますか? template< typename T > class alpha { private: T mVar; public: alpha( T var ) : mVar( var ) {} }; class bravo : public alpha< float > { public: bravo( float var ) : alpha( var ) {} };
667 名前:デフォルトの名無しさん (ワッチョイ bfaf-VFUi) mailto:sage [2017/07/06(木) 20:54:42.22 ID:1SuD/0Q50.net] コンパイル通りそうだけど どんなエラー?
668 名前:デフォルトの名無しさん (ワッチョイ 976f-U373) mailto:sage [2017/07/06(木) 20:54:56.95 ID:r4C+2lo90.net] なぜ肝心のエラーの内容を書かないのか
669 名前:デフォルトの名無しさん (ワッチョイ f7e2-pw7F) mailto:sage [2017/07/06(木) 20:58:24.06 ID:3RH7JsNg0.net] 658です コンパイル通りました すまんこ
670 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/06(木) 21:29:46.08 ID:RDUi9QjP0.net] ゆるさねえからな
671 名前:デフォルトの名無しさん (スプッッ Sd3f-RGC3) [2017/07/06(木) 22:12:30.80 ID:8iMXbcNhd.net] いえいえどういたしまして
672 名前:デフォルトの名無しさん (ワッチョイ 9f8f-gRQY) [2017/07/07(金) 00:01:47.76 ID:lYH0c+880.net] ヽ(・ω・)/ズコー
673 名前:デフォルトの名無しさん (ワッチョイ 1f1b-6//c) mailto:豊田の姉松居一代 [2017/07/10(月) 06:02:24.59 ID:kxDJWNLg0.net] 最近は3年毎に仕様改訂されてるC++なので プロパティはどーなってるのカナー♪ RWPropertyて・・・ このハゲーーーー!!! 違うだろ ち・が・う・だ・ろーーーー!!! C#みたいに class Body{ size_t Chimpo{ get; set;} }; Body Oreno; Oreno.Chimpo = 20; cerr << Oreno.Chimpo <<"cm\n"; と簡単に書きたいんです・す・す
674 名前:デフォルトの名無しさん (ワッチョイ 1f1b-6//c) mailto:豊田の姉松居一代 [2017/07/10(月) 06:06:24.38 ID:kxDJWNLg0.net] テンプレートなんかでお茶濁し腐って 言語仕様として実装しろつってんだよハゲーーーー!!! ぶち殺すぞ
675 名前:デフォルトの名無しさん (ワッチョイ 9709-8gU5) mailto:sage [2017/07/10(月) 06:07:31.30 ID:NdIMybBN0.net] C#のあれ結局関数だから、下駄と雪駄書きなさい。
676 名前:デフォルトの名無しさん (ワッチョイ 1f1b-6//c) mailto:豊田の姉松居一代 [2017/07/10(月) 06:21:29.79 ID:kxDJWNLg0.net] はやっ なんでこんな時間に2chなんかやってんだよ
677 名前:デフォルトの名無しさん (ワッチョイ 9709-8gU5) mailto:sage [2017/07/10(月) 06:42:08.85 ID:NdIMybBN0.net] オマエモナー。
678 名前:デフォルトの名無しさん (ワッチョイ 1f1b-6//c) mailto:sage [2017/07/10(月) 06:48:01.08 ID:kxDJWNLg0.net] 俺は超早く寝て朝4:30に起きるように 生活習慣変えたから
679 名前:名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 9709-8gU5) mailto:sage [2017/07/10(月) 07:03:50.00 ID:NdIMybBN0.net] 俺は、夜行性なだけだ。 今日は用事があるからこのまま起きてるが。
680 名前:デフォルトの名無しさん (スップ Sd3f-nGAm) mailto:sage [2017/07/10(月) 11:54:33.30 ID:okOc14zTd.net] 単独プロパティでゲットセット? あまり需要ないなあ。(個人の感想です)
681 名前:デフォルトの名無しさん (ワッチョイ 7f32-MxGc) mailto:sage [2017/07/11(火) 00:29:34.07 ID:4iHLvMGp0.net] メンバ変数はない方がいいし、アクセスする必要がある時点で、隠蔽が崩れ始めてると思った方がいいと思う。 特定のパターン除けば、外からメンバ変数にアクセスしたいケースってすくなくない? get/setは、リフレクションと命名規則に依存するフレームワークがあるから便利なのであって、c++には微妙じゃね?
682 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/11(火) 01:25:20.72 ID:7V5lebao0.net] 自動実装のgetsetってpublicなメンバ変数と何が違うんだ
683 名前:デフォルトの名無しさん (ワッチョイ 9709-8gU5) mailto:sage [2017/07/11(火) 01:29:35.46 ID:CDrVRBQX0.net] >>675 何度目だろう。 なんか、関数にしておくとオーバライドできて関数内で加工できるから違うって聞いた。
684 名前:デフォルトの名無しさん (ワッチョイ 174b-R6aQ) mailto:sage [2017/07/11(火) 01:48:50.09 ID:8G8H3ksE0.net] ゲッタセッタとか使いたくなるような場面ならそもそもpublicな構造体使った方がいい説はある
685 名前:デフォルトの名無しさん (ワッチョイ 174b-R6aQ) mailto:sage [2017/07/11(火) 01:50:07.47 ID:8G8H3ksE0.net] 配列のlengthとかあったか やっぱ取り消し
686 名前:デフォルトの名無しさん (ワッチョイ b7ea-rvkC) [2017/07/11(火) 06:32:58.41 ID:nM0jXF630.net] 関数オーバーロードやプロパティによるget/setの乱用は、メソッド名の文字列検索によるソースコード追跡ができなくなりかえって難読性が高まる。
687 名前:デフォルトの名無しさん (ワッチョイ 1f1b-6//c) mailto:sage [2017/07/11(火) 07:59:11.17 ID:MCsEtOKi0.net] ↓のテンプレートとジェネリックの違い、にある https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/generics/differences-between-cpp-templates-and-csharp-generics トップ項目にある ・C# ジェネリック クラスでは、ユーザー定義演算子は呼び出すことができますが、算術演算子を呼び出すことはできません。 "算術演算子を呼び出すことはできません"ってどーいう意味っすか? 算術演算子って+-*/のこと?
688 名前:デフォルトの名無しさん (アウアウウー Sa5b-X9Wr) [2017/07/11(火) 08:03:15.77 ID:ZtZ4WBZMa.net] C++すれでC#聞かれても。。。
689 名前:デフォルトの名無しさん (ワッチョイ 9f9f-ieup) mailto:sage [2017/07/11(火) 08:05:01.05 ID:bgByaxVg0.net] 頭悪いからだろ
690 名前:デフォルトの名無しさん (ワッチョイ 1f1b-6//c) mailto:sage [2017/07/11(火) 08:18:43.46 ID:MCsEtOKi0.net] >>681 あ、C#スレ行きます
691 名前:はつみつ餃子 ◆8X2XSCHEME (ワッチョイ 9f15-rvkC) mailto:sage [2017/07/11(火) 18:08:51.11 ID:W3h9V8nz0.net] 理解が逆なんだよ。 関数の組 (ときには片方のこともある) を変数として抽象化しようとするのがプロパティであって、 メンバ変数のアクセサとしても使えるのは用例のひとつでしかない。 ゲッタとセッタが自動生成できるとかいうのはまた別問題だるぉおおお
692 名前:デフォルトの名無しさん (ワッチョイ 5711-rvkC) mailto:sage [2017/07/11(火) 18:54:25.62 ID:dSS1j36W0.net] [][Tebla][] } 000-"Yob*RtStrike"[%Kil\]MO,fla>%$9999VLTS 001-GYORLith"0\R"/"ESUBA"%$% HADO-"EM","L","O","NU"###END
693 名前:デフォルトの名無しさん (スップ Sd3f-nGAm) mailto:sage [2017/07/11(火) 19:07:21.76 ID:DqTb1LDQd.net] >>684 素人なので「変数として抽象化」ってとこがよくわからない
694 名前:デフォルトの名無しさん (ワッチョイ d796-rvkC) mailto:sage [2017/07/11(火) 19:17:50.67 ID:dG3xud1d0.net] みなさんが複雑すぎて糞と言われるC++を使う理由を教えて下さい。
695 名前:デフォルトの名無しさん (ワンミングク MM7f-hrVG) mailto:sage [2017/07/11(火) 19:37:55.48 ID:FP4c/tWpM.net] >>684 なるほど、そんな捉え方があるのか データ抽象の一つの形としてプロパティなるものがあるって考え方ね
696 名前:デフォルトの名無しさん (スップ Sd3f-nGAm) mailto:sage [2017/07/11(火) 19:40:41.20 ID:DqTb1LDQd.net] >>687 言われるほど複雑じゃないから
697 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/11(火) 19:43:55.52 ID:7V5lebao0.net] >>687 複雑すぎではないし糞でもないから
698 名前:デフォルトの名無しさん (ワッチョイ bfaf-VFUi) mailto:sage [2017/07/11(火) 19:45:13.43 ID:YnoqV4V50.net] SDKがC++しかなくて仕方なく・・・
699 名前:デフォルトの名無しさん (ドコグロ MM2b-d65a) mailto:sage [2017/07/11(火) 20:21:24.75 ID:Wcul0TB2M.net] ネイティブコードを吐けるオブジェクト指向言語でメジャーな奴は C++ ぐらいしかないし
700 名前:デフォルトの名無しさん (ワッチョイ d796-rvkC) mailto:sage [2017/07/11(火) 21:14:29.35 ID:dG3xud1d0.net]
701 名前:人は複雑じゃないもん 二人は仕方なし [] [ここ壊れてます]
702 名前:デフォルトの名無しさん (ワッチョイ 9f89-EAWM) mailto:sage [2017/07/11(火) 21:42:20.62 ID:VLYeJXw20.net] いちばん使い慣れていて、使い勝手の良い道具だから。
703 名前:デフォルトの名無しさん (ワッチョイ d79a-0UkT) mailto:sage [2017/07/11(火) 22:06:48.92 ID:qjau/h5c0.net] 複雑だが糞ではない
704 名前:デフォルトの名無しさん (ドコグロ MMbf-rPCP) mailto:sage [2017/07/11(火) 22:11:10.23 ID:mCNEANh4M.net] >>686 同じ書き方で呼び出せる、ということ。 値を受け取るときに何か処理するようにしたとしても、プロパティなら関数呼び出しに書き換える必要がない。
705 名前:デフォルトの名無しさん (スップ Sd3f-nGAm) mailto:sage [2017/07/11(火) 22:18:58.63 ID:DqTb1LDQd.net] >>696 期待していた答えと違う 期待していた答えと違う
706 名前:デフォルトの名無しさん (ワッチョイ bfe4-LW8t) mailto:sage [2017/07/11(火) 22:30:22.09 ID:7V5lebao0.net] >>696 わざわざパースの難易度を上げてまで入れる価値はないな C++の場合変数に見える関数なんて落とし穴にしかならない
707 名前:デフォルトの名無しさん (ドコグロ MMbf-rPCP) mailto:sage [2017/07/11(火) 22:35:06.05 ID:mCNEANh4M.net] >>697 それじゃこう? 呼び出し元が同じ概念で扱えるように、呼び出し先のメンバ変数の読み込みと0変数関数、メンバ変数書き込みと1変数関数をプロパティという概念で同一視している。
708 名前:デフォルトの名無しさん (ワッチョイ 176f-zXdO) mailto:sage [2017/07/11(火) 22:35:38.41 ID:jUUyBjmf0.net] ビットローテーションについての相談です 今やりたいことは128文字の文字列を暗号化したい その中で4バイトごとに区切って、4バイトごとにビットローテーションして暗号化を考えている それの実現方法で悩んでいます 想定では右シフト char a[128] = 文字列; int x = a[0] << 24 + a[1] << 16 + a[2] << 8 + a[3]; // 下位2bitを上位2bitでtmp作成 int tmp = a[3] << 30; x = x >> 2 + tmp; これを繰り返す。 こんな感じのを考えたのだけどもっと良い方法はあるだろうか?
709 名前:デフォルトの名無しさん (ワッチョイ d79a-0UkT) mailto:sage [2017/07/11(火) 22:42:18.86 ID:qjau/h5c0.net] 環境依存で良いなら色々と思い付く とりあえず、<<より+の方が優先度が高いので()を付けないと | なら()は不要 コストは多分ほとんどの環境で同じ 8086とかだと | の方が速かったり
710 名前:片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdbf-R88v) mailto:sage [2017/07/11(火) 22:43:45.50 ID:7IW2GOwZd.net] >>700 数学や計算機科学を知らない素人が暗号化方式を考えるのは、おそらく無駄であり、出来たとしてもすぐハッキングされてしまう。 暗号化方式は、先人の研究によって評価されている手法を使うのが一般的。より良い暗号化方式を 考えるのは計算機科学者の仕事であり、プログラマーはその手法をプログラムに取り入れるだけだ。