次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part137 (正しくはpart138)
http://mevius.5ch.net/test/read.cgi/tech/1535353320/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/
■長いソースを貼るときはここへ。■
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
探検
C++相談室 part139
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ f65b-zn+7)
2018/10/06(土) 00:59:48.54ID:CdYUXXMG0304デフォルトの名無しさん (アウウィフ FF9f-T/6m)
2018/10/20(土) 13:36:14.45ID:u8BRF3D8F 専ブラのプレビューでも相当時間掛かった
リンクを踏む気は無い
リンクを踏む気は無い
305デフォルトの名無しさん (ワッチョイ 6abd-9c8P)
2018/10/20(土) 14:20:59.31ID:qs+WVIEc0 できたので貼る
Insertion sortで上位5件の相関値と座標(x, y)を表示するやつ:
ttps://ideone.com/L0fXH2
これは、同着があっても上位5位に入れば全部出力する。
get_top_N_pixels()がご本尊の関数
get_top_N_pixels_exp()が比較用に作ったバージョンで、std::sortで全画素並べ替えて上位5件を出力する。
上位5位以内に同着があまりに多いとget_top_N_pixels_exp()の方のが早いが
適当に作ったランダムな値の条件でQVGAぐらいの画像サイズだったらget_top_N_pixels()の方が8倍ぐらい早いっぽ
Insertion sortで上位5件の相関値と座標(x, y)を表示するやつ:
ttps://ideone.com/L0fXH2
これは、同着があっても上位5位に入れば全部出力する。
get_top_N_pixels()がご本尊の関数
get_top_N_pixels_exp()が比較用に作ったバージョンで、std::sortで全画素並べ替えて上位5件を出力する。
上位5位以内に同着があまりに多いとget_top_N_pixels_exp()の方のが早いが
適当に作ったランダムな値の条件でQVGAぐらいの画像サイズだったらget_top_N_pixels()の方が8倍ぐらい早いっぽ
306デフォルトの名無しさん (ワッチョイ 6ab3-b3y3)
2018/10/20(土) 14:29:43.99ID:8XvHu+iJ0 >>303
Edge@androidでも開ける
Edge@androidでも開ける
307305 (ワッチョイ 6abd-9c8P)
2018/10/21(日) 13:32:51.16ID:CG65RjWX0 訂正 s/同着/同順/g
で、同順がそれなりにある前提でパホーマンスをちゃんと計ったら8倍どころではなかったわ3000倍以上早かったわ;
条件は以下の通り
■ 画像サイズ:
W=320 - 10, H=240 - 10
(Number of pixels=71300)
■ データ
値域[-5000.0F, 5000.0F]の一様分布。データ重複無し。
■ Basic design の結果(get_top_N_pixels_exp(): 全画素std::sort())
387 sec @ 反復回数ntimes=100, TOP_N=256 --> ntimesを10倍にすると3870 secの見込み
■ Practical designの結果(get_top_N_pixels(): TOP_N画素のInsertion sort
1 sec @ 反復回数ntimes=1000, TOP_N=256
14 sec @ 反復回数ntimes=10000, TOP_N=256
とゆーわけで、今回は一様分布かつデータ重複無しでこうだったので、TOP_N=256は一般条件における128と解釈するとして、
上位5位に入るデータの個数が128個以下なら>>305のpractical designで上記のパホーマンスが出る見込み
で、同順がそれなりにある前提でパホーマンスをちゃんと計ったら8倍どころではなかったわ3000倍以上早かったわ;
条件は以下の通り
■ 画像サイズ:
W=320 - 10, H=240 - 10
(Number of pixels=71300)
■ データ
値域[-5000.0F, 5000.0F]の一様分布。データ重複無し。
■ Basic design の結果(get_top_N_pixels_exp(): 全画素std::sort())
387 sec @ 反復回数ntimes=100, TOP_N=256 --> ntimesを10倍にすると3870 secの見込み
■ Practical designの結果(get_top_N_pixels(): TOP_N画素のInsertion sort
1 sec @ 反復回数ntimes=1000, TOP_N=256
14 sec @ 反復回数ntimes=10000, TOP_N=256
とゆーわけで、今回は一様分布かつデータ重複無しでこうだったので、TOP_N=256は一般条件における128と解釈するとして、
上位5位に入るデータの個数が128個以下なら>>305のpractical designで上記のパホーマンスが出る見込み
308305 (ワッチョイ 6abd-9c8P)
2018/10/21(日) 13:46:01.97ID:CG65RjWX0 ごめwwwwwデータ訂正および結論は480倍早かった、に訂正、
■ Practical designの結果(get_top_N_pixels(): TOP_N画素のInsertion sort
1 sec @ 反復回数ntimes=1000, TOP_N=256
8 sec @ 反復回数ntimes=10000, TOP_N=256 -- 3870 / 8 = 483.75
14 sec @ 反復回数ntimes=10000, TOP_N=65536
■ Practical designの結果(get_top_N_pixels(): TOP_N画素のInsertion sort
1 sec @ 反復回数ntimes=1000, TOP_N=256
8 sec @ 反復回数ntimes=10000, TOP_N=256 -- 3870 / 8 = 483.75
14 sec @ 反復回数ntimes=10000, TOP_N=65536
309305 (ワッチョイ 6abd-9c8P)
2018/10/21(日) 14:18:55.75ID:CG65RjWX0 ごめwwwwww結論は3000倍以上早かった、で訂正の必要はなかったorz
Basic designの結果
387 sec @ 反復回数ntimes=100, TOP_N=256
に対して、Practical designの結果
8 sec @ 反復回数ntimes=10000, TOP_N=256
は、(387/100) / (8/10000) = 4837.5倍早い
今日日のCPUアーキテクチャーとinsertion sort様様じゃ
Basic designの結果
387 sec @ 反復回数ntimes=100, TOP_N=256
に対して、Practical designの結果
8 sec @ 反復回数ntimes=10000, TOP_N=256
は、(387/100) / (8/10000) = 4837.5倍早い
今日日のCPUアーキテクチャーとinsertion sort様様じゃ
310名無しさん@そうだ選挙に行こう! Go to vote! (ラクッペ MMc3-8aSD)
2018/10/22(月) 08:41:03.37ID:zV72Tsc+M 江添と2ちゃんねらーどっちが頭いいですか?
311名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 2ab3-nBLa)
2018/10/22(月) 08:50:48.56ID:pX1YSS+g0 お前が最高だよ
312名無しさん@そうだ選挙に行こう! Go to vote! (ラクッペ MMc3-8aSD)
2018/10/22(月) 09:11:16.83ID:zV72Tsc+M >>311
ありがとう//
ありがとう//
313デフォルトの名無しさん (ワッチョイ 2e1a-bYeg)
2018/10/22(月) 15:27:10.69ID:vlwo9A120 STLってもはやスクリプト言語などと変わらない使用感でプログラム書けるな
最高過ぎる
最高過ぎる
314デフォルトの名無しさん (アウウィフ FF9f-T/6m)
2018/10/22(月) 15:49:25.60ID:H1W4+XYRF tupleが便利だけどまだちょっと物足りない
315デフォルトの名無しさん (ワッチョイ ea11-nBLa)
2018/10/22(月) 17:48:12.06ID:MQnoZdqg0 C++17の構造化束縛を使うときありがたい
316デフォルトの名無しさん (エムゾネ FF8a-T/6m)
2018/10/22(月) 18:11:37.07ID:N4Dlk9u9F インライン変数って使ってる?
317デフォルトの名無しさん (ワッチョイ 7b23-YIge)
2018/10/22(月) 19:19:03.71ID:OLEUht090 c標準ライブラリの関数ってstd名前空間にあるのに必ずしもstd::をつける必要ないよね
なぜか分かる人いない?
なぜか分かる人いない?
318さまよえる蟻人間 ◆T6xkBnTXz7B0 (スププ Sd8a-vNYI)
2018/10/22(月) 19:25:06.82ID:Bb4f3r+9d C言語との互換性のため。
using使っているから。
using使っているから。
319デフォルトの名無しさん (ワッチョイ 6a34-Ep/t)
2018/10/22(月) 19:32:50.75ID:9pYssRud0 cstdio → stdで囲まれる
stdio.h → 囲まれない
stdio.h → 囲まれない
320デフォルトの名無しさん (アウアウカー Safb-dUTK)
2018/10/22(月) 19:39:34.29ID:3rTgJh0aa 横から納得w
古いC++(C互換重視)と新しいC++(新世界の王に俺はなるモード)の互換のためか。
ナル。
古いC++(C互換重視)と新しいC++(新世界の王に俺はなるモード)の互換のためか。
ナル。
321デフォルトの名無しさん (ワッチョイ 7b23-YIge)
2018/10/22(月) 21:20:30.74ID:OLEUht090322デフォルトの名無しさん (ラクッペ MMc3-+HPi)
2018/10/23(火) 18:14:01.09ID:Au3cxoDNM directory_recursive_iteratorで各ディレクトリを読み込むと読み込み順がおかしくなりますが、これvectorに突っ込んでソートしないと辞書順に戻せないのですか?
323はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 666f-nBLa)
2018/10/23(火) 18:22:08.06ID:L3KABBTH0 >>322
戻すっていうか、普通のファイルシステムでは辞書順に並ばないことの方が多いんじゃないの。 知らんけど。
言語仕様的には recursive_directory_iterator が辿る順序は未規定。
戻すっていうか、普通のファイルシステムでは辞書順に並ばないことの方が多いんじゃないの。 知らんけど。
言語仕様的には recursive_directory_iterator が辿る順序は未規定。
324デフォルトの名無しさん (ワッチョイ 4acb-nBLa)
2018/10/23(火) 21:40:23.22ID:/OGOSsnj0 二次記憶装置のデータをいちいちソート済みに保とうとするとオーバーヘッドが無茶苦茶だからな
読み込み順がおかしくなるんじゃなく、いつもOSがソートして見せてくれてたのが元のまま出てきただけだ
DOSの時代はdirに/oスイッチが追加されたとき便利になったものだと思ったよ
読み込み順がおかしくなるんじゃなく、いつもOSがソートして見せてくれてたのが元のまま出てきただけだ
DOSの時代はdirに/oスイッチが追加されたとき便利になったものだと思ったよ
325デフォルトの名無しさん (スフッ Sd8a-nQMY)
2018/10/23(火) 21:41:56.02ID:VWRpZj9Jd C++こそ至高
326デフォルトの名無しさん (スプッッ Sd2a-yU1x)
2018/10/23(火) 22:17:33.35ID:cC1ZIpo7d 毎日毎日ソートして表示してくれてる ls や dir.exe や exproler.exe には頭が上がりません
327デフォルトの名無しさん (ワッチョイ 6abd-9c8P)
2018/10/23(火) 23:09:18.58ID:VQ3XT5xj0 総統も相当ソートがお好きですなあ
ガハハハハハハ、
ガハハハハハハ、
328デフォルトの名無しさん (ワッチョイ 4acb-nBLa)
2018/10/23(火) 23:09:49.99ID:/OGOSsnj0 ピキン
329デフォルトの名無しさん (ワッチョイ f380-tM5n)
2018/10/23(火) 23:15:54.90ID:+Sb0MP+K0 また低学歴知恵遅れたちは頭わるいこといってるわ。。。
dir.exe?
dirはcmd.exeの内部コマンドだからな
dir.exeなんかあるワケがない
ソートするのはcmd.exeがdirコマンドを受けつけたときの機能で
OS自体の機能じゃないからな
ホントな低学歴知恵遅れたちは基本的なことが分かってない
dir.exe?
dirはcmd.exeの内部コマンドだからな
dir.exeなんかあるワケがない
ソートするのはcmd.exeがdirコマンドを受けつけたときの機能で
OS自体の機能じゃないからな
ホントな低学歴知恵遅れたちは基本的なことが分かってない
330デフォルトの名無しさん (アウアウウー Sa9f-V5Rj)
2018/10/24(水) 01:34:13.78ID:K3Hn81Y7a 半角さん全角で書いてる・・・
331デフォルトの名無しさん (ワッチョイ 8af9-L5c9)
2018/10/24(水) 01:53:57.74ID:ht/B3MxL0 >>330
最近飽きられてきたから(構ってもらえなくなったから)、芸風を変えてきたんだろ。触らないのがよろしいかと。
最近飽きられてきたから(構ってもらえなくなったから)、芸風を変えてきたんだろ。触らないのがよろしいかと。
332デフォルトの名無しさん (ワッチョイ f380-tM5n)
2018/10/24(水) 22:50:08.00ID:WtQFT3Lb0 全角の部分を半角で書き込むと403ではじかれる
わかった?
低学歴知恵遅れの書き込みはいつも浅はか
わかった?
低学歴知恵遅れの書き込みはいつも浅はか
333デフォルトの名無しさん (ワッチョイ be80-6qH8)
2018/10/24(水) 23:09:52.03ID:2LYWqLo00 cmd.exe を半角で書いたら、
コマンドが実行されて、サーバーをハッキングされるとか、
5ch・サーバーの運営は、頭おかしい
素人がシステム・サーバーの運営構築してる
漏れは、何十冊も本を読んでいるけど、
cmd.exe を送ったら、ハッキングできるという記事を見たことがない
コマンドが実行されて、サーバーをハッキングされるとか、
5ch・サーバーの運営は、頭おかしい
素人がシステム・サーバーの運営構築してる
漏れは、何十冊も本を読んでいるけど、
cmd.exe を送ったら、ハッキングできるという記事を見たことがない
334デフォルトの名無しさん (ワッチョイ 6abd-9c8P)
2018/10/24(水) 23:31:31.21ID:831HCs6w0 dir .exe
dir
cmd. exe
OS
ホンマや!弾かれた!!
dir
cmd. exe
OS
ホンマや!弾かれた!!
335デフォルトの名無しさん (ワッチョイ 6abd-9c8P)
2018/10/24(水) 23:34:37.74ID:831HCs6w0 サニタイズの最先端・ユーザーに入力させない←いまここ
いや知らんけど多分、
いや知らんけど多分、
336デフォルトの名無しさん (アウアウウー Sa9f-V5Rj)
2018/10/24(水) 23:36:41.49ID:K3Hn81Y7a 326はどうやって書き込んだのか
337デフォルトの名無しさん (ワッチョイ 6a34-Ep/t)
2018/10/24(水) 23:42:29.72ID:2VbPUKOa0 dir.exeは実在しないから
338さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ a3b3-vNYI)
2018/10/24(水) 23:45:51.61ID:H1sgDttB0 cmd.exe
339さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ a3b3-vNYI)
2018/10/24(水) 23:47:41.25ID:H1sgDttB0 5chのNGワードチェックには文字参照という抜け穴が空いてる。
340デフォルトの名無しさん (エムゾネ FF8a-yU1x)
2018/10/24(水) 23:47:52.54ID:VdYWesL2F dir.exe とかはどうだろう
341デフォルトの名無しさん (エムゾネ FF8a-yU1x)
2018/10/24(水) 23:49:12.41ID:VdYWesL2F342デフォルトの名無しさん (エムゾネ FF8a-yU1x)
2018/10/24(水) 23:49:46.74ID:VdYWesL2F cmd.exe か
343デフォルトの名無しさん (アウアウウー Sa2f-lMT5)
2018/10/25(木) 00:27:44.75ID:pvv+BGAWa ©
344デフォルトの名無しさん (ワッチョイ ab80-+4k5)
2018/10/25(木) 01:10:25.04ID:ZE3NVml10 文字実体参照・数値文字参照なら、コマンドが実行されて、5ch サーバーをハッキングされる事もない
cmd.exe
dot, period は、ascii コード、46 (0x2E)
cmd.exe
dot, period は、ascii コード、46 (0x2E)
345デフォルトの名無しさん (オイコラミネオ MM4b-1gj4)
2018/10/25(木) 01:38:31.34ID:AmP2wyvxM ☝
346デフォルトの名無しさん (JP 0H4b-q7gB)
2018/10/25(木) 11:03:54.05ID:S9429CZWH 戻り値がオブジェクトの関数書きました。
すると上司が、変更があったとき不具合の原因になるからポインタで返せと。
これ本当でしょうか。stackoverflowとか覗いてるんですがオブジェクトで返すかスマポで返すかみたいな論調ばかりです。
少なくとも生ポインタ使えという意見は見当たりません。
(生)ポインタ使ったほうがいいケースというのは実際にあるんでしょうか。
すると上司が、変更があったとき不具合の原因になるからポインタで返せと。
これ本当でしょうか。stackoverflowとか覗いてるんですがオブジェクトで返すかスマポで返すかみたいな論調ばかりです。
少なくとも生ポインタ使えという意見は見当たりません。
(生)ポインタ使ったほうがいいケースというのは実際にあるんでしょうか。
347デフォルトの名無しさん (アウウィフ FFb3-gZJR)
2018/10/25(木) 11:14:40.21ID:5Cy/pQlUF348デフォルトの名無しさん (アウウィフ FFb3-gZJR)
2018/10/25(木) 11:14:58.15ID:5Cy/pQlUF ああ
もちろんスマポは否定しない
もちろんスマポは否定しない
349デフォルトの名無しさん (ワッチョイ f323-JHIh)
2018/10/25(木) 11:19:20.78ID:UTTFABgo0350デフォルトの名無しさん (ワッチョイ 2723-VFcb)
2018/10/25(木) 11:36:26.68ID:kug3Loto0 c++ の標準のスマートポインタでは循環参照を持つもの、
例えば get_child() と get_parent() を持つような木構造やリスト構造は扱えない
で、大抵の場合これらは単に生ポインタで実装される。
例えば get_child() と get_parent() を持つような木構造やリスト構造は扱えない
で、大抵の場合これらは単に生ポインタで実装される。
351はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-7TBo)
2018/10/25(木) 11:52:04.34ID:ytpwmPM20 >>346
C++ のミスりやすい箇所ってのはメモリ管理が多くを占めるので、
生ポインタは面倒くさいわってのが普通の感覚だと思うし、
不具合の原因になるってのはよくわからん言い分なので、
もっと掘り下げて聞かないとなんとも言えん。
共有オブジェクト (DLL) のインターフェイスにする場合なんかだと
ABI の都合とかでおかしなことになったりすることもあるかもしれんなぁ
みたいな可能性を想像することは出来るが、
書いてるプログラムや開発環境の性質に固有の事情はわからん。
一般的には、生ポインタにせざるを得ないことは有っても生ポインタの方が良いってことはあんまりなさそう。
C++ のミスりやすい箇所ってのはメモリ管理が多くを占めるので、
生ポインタは面倒くさいわってのが普通の感覚だと思うし、
不具合の原因になるってのはよくわからん言い分なので、
もっと掘り下げて聞かないとなんとも言えん。
共有オブジェクト (DLL) のインターフェイスにする場合なんかだと
ABI の都合とかでおかしなことになったりすることもあるかもしれんなぁ
みたいな可能性を想像することは出来るが、
書いてるプログラムや開発環境の性質に固有の事情はわからん。
一般的には、生ポインタにせざるを得ないことは有っても生ポインタの方が良いってことはあんまりなさそう。
352デフォルトの名無しさん (ワッチョイ 2723-VFcb)
2018/10/25(木) 12:00:30.29ID:kug3Loto0 ファクトリー関数は生ポインタ返すように作るのが良いと思う
353デフォルトの名無しさん (アウウィフ FFb3-gZJR)
2018/10/25(木) 12:24:55.50ID:5Cy/pQlUF たしかにどこも指してない参照を返したいときは
NULLポ使えるポインタ返しにする
ダミーの空オブジェクト作れるように
C++が最初からルートオブジェクト基底してくれてればよかったのにと思うことはある
NULLポ使えるポインタ返しにする
ダミーの空オブジェクト作れるように
C++が最初からルートオブジェクト基底してくれてればよかったのにと思うことはある
354デフォルトの名無しさん (ワッチョイ c9c3-d2wE)
2018/10/25(木) 12:31:40.62ID:O+EPl0Ul0 struct Point{int x; int y;};
みたいな単純なPOD構造体をstructだからって教条的にいちいちnewとポインタで取り回してるプログラムは時々見かけるけど
そういうのは危ないし遅いしウザいからやめてほしい
みたいな単純なPOD構造体をstructだからって教条的にいちいちnewとポインタで取り回してるプログラムは時々見かけるけど
そういうのは危ないし遅いしウザいからやめてほしい
355デフォルトの名無しさん (ワッチョイ 2723-VFcb)
2018/10/25(木) 12:36:58.91ID:kug3Loto0 そんなの参照と値渡しでいいということには同意するが
point 型を new / delete してるコード見た経験はないな
point 型を new / delete してるコード見た経験はないな
356デフォルトの名無しさん (ワッチョイ 17b3-LdhF)
2018/10/25(木) 13:10:30.18ID:CpJhCfWv0 >>346の上司が言ってるのは、コピーコンストラクトや代入が正しく機能するということを
保証しなくちゃならなくなるから、ってことだろ
そこまで気にかけてる暇はないし、生ポで書くのが一般的な職場だというならそれに倣うしかない
保証しなくちゃならなくなるから、ってことだろ
そこまで気にかけてる暇はないし、生ポで書くのが一般的な職場だというならそれに倣うしかない
357デフォルトの名無しさん (スプッッ Sddb-VFcb)
2018/10/25(木) 13:17:16.94ID:qRFZNeCrd そういえば俺コピー不可のクラス書いてもちゃんと private だ何だで実際に代入できないようにしてないな…
358デフォルトの名無しさん (ワッチョイ f323-JHIh)
2018/10/25(木) 15:12:05.05ID:UTTFABgo0 コピー不可で思い出したけど、コピーコンストラクタと代入演算子をprivateにしたクラスを
vectorにpush_back()する記述がコンパイルエラーになるよね。
vector<Hoge> hogeVec;
hogeVec.push_back(Hoge()); // コンパイルエラー
これってどうすればいいの?
vectorにpush_back()する記述がコンパイルエラーになるよね。
vector<Hoge> hogeVec;
hogeVec.push_back(Hoge()); // コンパイルエラー
これってどうすればいいの?
359デフォルトの名無しさん (ワッチョイ a17f-7TBo)
2018/10/25(木) 15:24:01.65ID:GHCvVeSE0 emplace_back使うとか
360デフォルトの名無しさん (アウウィフ FFb3-gZJR)
2018/10/25(木) 15:28:42.80ID:5Cy/pQlUF friend
361はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-7TBo)
2018/10/25(木) 16:12:31.55ID:ytpwmPM20 >>358
std::vector の要素は CopyAssignable と CopyConstructible の要件を満たす必要がある。
実際、 std::vector は内部で要素をコピーしたり代入したりすることがあるんだから、
それが出来ない要素を入れられないのは当たり前の話で、
コンテナに入れるならポインタ (上記要件を満たすスマートポインタでもよい) を入れるようにするくらいしか方法はないと思う。
std::vector の要素は CopyAssignable と CopyConstructible の要件を満たす必要がある。
実際、 std::vector は内部で要素をコピーしたり代入したりすることがあるんだから、
それが出来ない要素を入れられないのは当たり前の話で、
コンテナに入れるならポインタ (上記要件を満たすスマートポインタでもよい) を入れるようにするくらいしか方法はないと思う。
362デフォルトの名無しさん (ワッチョイ 0beb-JHIh)
2018/10/25(木) 19:22:18.01ID:Xzu40Yvw0 >>358
ムーブしてもいいならムーブコンストラクタと代入演算子を定義すれば行けないかな
ムーブしてもいいならムーブコンストラクタと代入演算子を定義すれば行けないかな
363デフォルトの名無しさん (ワッチョイ f323-VFcb)
2018/10/25(木) 19:29:07.62ID:wLNEFoo10 どうせ所有権意識して std::move を使うなら個々のクラスには
手を加えず unique_ptr かますのが楽じゃないかな
手を加えず unique_ptr かますのが楽じゃないかな
364はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-7TBo)
2018/10/25(木) 20:30:19.71ID:ytpwmPM20365デフォルトの名無しさん (ワッチョイ 0beb-JHIh)
2018/10/25(木) 20:44:45.18ID:Xzu40Yvw0366デフォルトの名無しさん (オッペケ Srb5-H+Zc)
2018/10/25(木) 23:00:25.21ID:ZDfhcJz3r リストのイテレータ使って周期的な処理をしたいんだが、そういう使い方合ってる?
N 要素のリストのイテレータ it = s.begin() を N 回インクリメントしたら、it はルート(?)を指すわけだが、そうじゃなくて s.begin() と同じところを指してほしい
こういう場合、どうしたら良いだろうか
N 要素のリストのイテレータ it = s.begin() を N 回インクリメントしたら、it はルート(?)を指すわけだが、そうじゃなくて s.begin() と同じところを指してほしい
こういう場合、どうしたら良いだろうか
367デフォルトの名無しさん (ワッチョイ 5b5b-F79V)
2018/10/25(木) 23:40:18.35ID:NT+vxu3F0 くるくる回るシングルリンクリストを自前でこしらえたほうが手っ取り早いと思うけど、
https://www.boost.org/doc/libs/1_65_1/doc/html/circular_buffer.html
https://www.boost.org/doc/libs/1_65_1/doc/html/circular_buffer.html
368デフォルトの名無しさん (ワッチョイ 1d80-SUE8)
2018/10/25(木) 23:59:33.84ID:ZWxqLT/20 スアホポインタみたいな頭ワルイの使うぐらなら
C++なんかつかわなければいいのに
低学歴知恵遅れは新しいもんができると
使わないといけないという使命感があるらしい
低学歴知恵遅れは自分で要否が判断できない
C++なんかつかわなければいいのに
低学歴知恵遅れは新しいもんができると
使わないといけないという使命感があるらしい
低学歴知恵遅れは自分で要否が判断できない
369デフォルトの名無しさん (ワッチョイ c9c3-d2wE)
2018/10/26(金) 00:05:29.09ID:q2UMXiCp0 そうだね痴呆おじいちゃんには7年前に標準化された最新機能は難しすぎるから仕方ないね
半角に限らず今でもウヨウヨいるからあんまり笑い事じゃないんだけど
半角に限らず今でもウヨウヨいるからあんまり笑い事じゃないんだけど
370デフォルトの名無しさん (ワッチョイ 1d80-SUE8)
2018/10/26(金) 00:08:04.60ID:7cGNdWT70 あんのが難しい?
知恵遅れは頭ワルイシロモノを使ってる自覚がないからな
低学歴知恵遅れはアレで難しいもん使ってるつもりでいんのか
へー
知恵遅れは頭ワルイシロモノを使ってる自覚がないからな
低学歴知恵遅れはアレで難しいもん使ってるつもりでいんのか
へー
371デフォルトの名無しさん (オッペケ Srb5-H+Zc)
2018/10/26(金) 00:12:31.03ID:xVkfT4g2r372はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-7TBo)
2018/10/26(金) 01:29:12.07ID:D2okE+fs0373デフォルトの名無しさん (ワッチョイ 17b3-LdhF)
2018/10/26(金) 11:08:50.27ID:R8qtZuY20 うろ覚えで>>364みたいなこと断言してたのかよ
自分の記憶を疑う癖つけた方がいいよマジで
自分の記憶を疑う癖つけた方がいいよマジで
374はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-7TBo)
2018/10/26(金) 13:04:49.03ID:D2okE+fs0 >>373
いや、このサイトを見て確認はしたんだよ。
https://ja.cppreference.com/w/cpp/container/vector
ただ、 「C++11 以前」という書き方になってたから、前後を見ずに C++11 は含むのだと思ったし、
(現在の最新ではないとはいえ) C++11 くらいには配慮すべきだろうなっていう前提で言ってたの。
でも、ちゃんと仕様を確認したら「C++11 以前」は C++11 を含まないことに気づいたって次第。
いや、このサイトを見て確認はしたんだよ。
https://ja.cppreference.com/w/cpp/container/vector
ただ、 「C++11 以前」という書き方になってたから、前後を見ずに C++11 は含むのだと思ったし、
(現在の最新ではないとはいえ) C++11 くらいには配慮すべきだろうなっていう前提で言ってたの。
でも、ちゃんと仕様を確認したら「C++11 以前」は C++11 を含まないことに気づいたって次第。
375デフォルトの名無しさん (ワッチョイ 17b3-LdhF)
2018/10/26(金) 14:50:04.44ID:R8qtZuY20 あー、確かにあれは紛らわしいかもね・・
でもすぐ近くに「C++11およびそれ以降」ってあるしな
でもすぐ近くに「C++11およびそれ以降」ってあるしな
376デフォルトの名無しさん (ワッチョイ a161-o1DS)
2018/10/29(月) 12:48:55.53ID:oLCvh0eX0 Cとhaskellはどちらがどれくらい速いですか?
377デフォルトの名無しさん (ワントンキン MM3b-uH1J)
2018/10/29(月) 12:50:29.22ID:cH/HmFkLM たらい回し関数でも作って遊んでろ
378デフォルトの名無しさん (ワッチョイ a161-o1DS)
2018/10/29(月) 15:30:56.80ID:oLCvh0eX0 STLのリストは要素を挿入するごとにメモリーの割り当てが起こるのか一度に割り当てられている場所に
なのかどちらですか?
なのかどちらですか?
379デフォルトの名無しさん (ワッチョイ bfe0-wSaz)
2018/10/29(月) 17:02:30.38ID:AJZhbohO0 規格は要素ごとに割り当てるのを想定してるだろうけど
例えば10個分まとめて、みたいな実装もOKじゃないかな……
挿入削除やイテレータの++がO(1)みたいな各種要件さえ満たしてれば
例えば10個分まとめて、みたいな実装もOKじゃないかな……
挿入削除やイテレータの++がO(1)みたいな各種要件さえ満たしてれば
380デフォルトの名無しさん (ワントンキン MM3b-uH1J)
2018/10/29(月) 18:06:21.97ID:cH/HmFkLM vectorならともかく、そんな実装するってメリットがあまり無い気が
381はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-7TBo)
2018/10/29(月) 18:28:09.22ID:wGJRVi/I0 メモリのローカリティを維持できれば性能がよくなる可能性もあるんじゃね?
382デフォルトの名無しさん (スップ Sd37-VFcb)
2018/10/29(月) 19:36:47.21ID:oZEcP9DNd >>380
メモリのアロケーションは意外にコスト高いからまとめてアロケートしておいて
node を用意するときにそこから placement new とかして使ってゆくと高速になる
リストのノードに限らず、プロファイル取って new が時間
食ってるときにオブジェクトについてはこれで簡易に改善できる
最近はデフォルトのアロケータが高性能で意味がないこともあるけど
メモリのアロケーションは意外にコスト高いからまとめてアロケートしておいて
node を用意するときにそこから placement new とかして使ってゆくと高速になる
リストのノードに限らず、プロファイル取って new が時間
食ってるときにオブジェクトについてはこれで簡易に改善できる
最近はデフォルトのアロケータが高性能で意味がないこともあるけど
383デフォルトの名無しさん (スップ Sd37-VFcb)
2018/10/29(月) 19:40:02.85ID:oZEcP9DNd 続き
解放も一気にしないと面倒なので基本追加一方で不要になったら全部消すみたいな場合に使う
巨大 xml の dom を作って、不要になったら全解放みたいなとき。
解放も一気にしないと面倒なので基本追加一方で不要になったら全部消すみたいな場合に使う
巨大 xml の dom を作って、不要になったら全解放みたいなとき。
384デフォルトの名無しさん (ワッチョイ 5bf6-JHIh)
2018/10/29(月) 22:12:03.67ID:88V2EdRw0 大きいデータだと何十万回、何百万回もnewしなくちゃいけないようなクラスは
1メガくらいまとめてnew [] したほうが絶対いい。
実行時間比較すればわかるけど、かなり高速になる。
1メガくらいまとめてnew [] したほうが絶対いい。
実行時間比較すればわかるけど、かなり高速になる。
385デフォルトの名無しさん (ワッチョイ 5315-7TBo)
2018/10/29(月) 22:12:56.73ID:JnF9Re6Y0 1メガくらいという根拠の薄いマジックナンバーに依存する糞コード
386デフォルトの名無しさん (ワッチョイ 5bf6-JHIh)
2018/10/29(月) 22:36:16.47ID:88V2EdRw0 >>385
当然、実装するときは、まとめて確保するメモリ量は指定できるように作るのが当たり前。
いちいちそんなこと言わなくてもみんなわかると思って、例えば1メガという意図で「1メガくらい」
と書いたが、バカには伝わなかったみたいだな
当然、実装するときは、まとめて確保するメモリ量は指定できるように作るのが当たり前。
いちいちそんなこと言わなくてもみんなわかると思って、例えば1メガという意図で「1メガくらい」
と書いたが、バカには伝わなかったみたいだな
387デフォルトの名無しさん (ワッチョイ 5315-7TBo)
2018/10/29(月) 22:38:25.00ID:JnF9Re6Y0 で、1メガという定量的な根拠は? いくら罵倒しても自動的には出てこないぞ
388デフォルトの名無しさん (ワッチョイ 3bcd-uH1J)
2018/10/29(月) 22:40:37.61ID:YGs2BWq10 パフォーマンスを求めるシーンでダブルリンクリストって
389デフォルトの名無しさん (スップ Sd37-VFcb)
2018/10/30(火) 00:35:43.38ID:0KkuIlNzd ダブルかどうかは知らんが深さが不定の木構造なら仕方ない
んでメモリ確保はn個まとめればアロケーションコストはほぼ1/nになるんで
10とか100で十分で別にそんなに増やす必要はない
が、大量にアロケートするときしか使わない手法なので1000とか大きな数にするのが人の情
んでメモリ確保はn個まとめればアロケーションコストはほぼ1/nになるんで
10とか100で十分で別にそんなに増やす必要はない
が、大量にアロケートするときしか使わない手法なので1000とか大きな数にするのが人の情
390デフォルトの名無しさん (ワッチョイ 4f8a-cZbQ)
2018/10/30(火) 09:09:19.02ID:/5i0cROz0 何百万回もnewする想定なのに1メガでいいの?
391デフォルトの名無しさん (ワッチョイ f323-JHIh)
2018/10/30(火) 10:54:57.24ID:aDKxpfal0 まあnewするクラスのサイズによるだろ
サイズが100バイトのクラスなら1メガでもnewの回数が一万分の1になるので効果はありそう
サイズが100バイトのクラスなら1メガでもnewの回数が一万分の1になるので効果はありそう
392はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-7TBo)
2018/10/30(火) 11:32:05.07ID:/tj4m1Wy0 データ構造全体でどれくらいの大きさになるのか事前に見積もれればいいんだけどね。
ガチでチューニングしようと思ったら
各アプリケーションでのメモリの使い方の特性を考慮しなきゃならんし、
パラメータの微調整は実際にやって試してみるしかしょうがない。
ガチでチューニングしようと思ったら
各アプリケーションでのメモリの使い方の特性を考慮しなきゃならんし、
パラメータの微調整は実際にやって試してみるしかしょうがない。
393デフォルトの名無しさん (ワッチョイ f323-JHIh)
2018/10/30(火) 12:17:01.56ID:aDKxpfal0 >>392
>データ構造全体でどれくらいの大きさになるのか事前に見積もれればいいんだけどね。
そうだな
実行開始して何時間も待たされた挙句、メモリ不足でエラー終了とかマジ勘弁して欲しいわ
最初に使用メモリ量を予測してエラーにしてくれよ
>データ構造全体でどれくらいの大きさになるのか事前に見積もれればいいんだけどね。
そうだな
実行開始して何時間も待たされた挙句、メモリ不足でエラー終了とかマジ勘弁して欲しいわ
最初に使用メモリ量を予測してエラーにしてくれよ
394デフォルトの名無しさん (ワンミングク MM1b-uH1J)
2018/10/30(火) 14:48:22.73ID:bp+Jjz8rM 今時はメモリエラーなんて出さずに延々確保しにいってスラッシングしまくるだけ
395デフォルトの名無しさん (ワイーワ2 FF33-gZJR)
2018/10/30(火) 15:06:52.69ID:p4LrBCE7F396デフォルトの名無しさん (ワッチョイ c7eb-nLkq)
2018/10/30(火) 16:22:00.39ID:YIrhnuea0 2^N+αの方がいいぞ
397デフォルトの名無しさん (ワッチョイ a3ef-7TBo)
2018/10/30(火) 21:01:00.62ID:Z4vjmLqM0 >>395
テキトーの用語の使い方を間違っているな
テキトーの用語の使い方を間違っているな
398デフォルトの名無しさん (オイコラミネオ MM4b-x1Ry)
2018/10/31(水) 00:35:59.17ID:7q2lQPFCM 適当には適切という意味もあるんやで
399デフォルトの名無しさん (ワッチョイ 7fb3-7TBo)
2018/10/31(水) 00:55:16.82ID:n3cdWN/k0 jemallocのデフォルトチャンクサイズは1MiBらしいな
経験的に悪くない数字なんだろう
経験的に悪くない数字なんだろう
400デフォルトの名無しさん (ワッチョイ bbbd-x3RP)
2018/10/31(水) 00:55:23.06ID:2bLA79Ru0 一気解放テクというのはN億個のオブジェクトをフルスピードで作って10秒かかったとして、
破棄するときもバカ正直に10秒かけるつもりなのかとかそういう話だが
オブジェクトがリソースを所有しておりデストラクトを要するブツだったりすると
オブジェクトの占有メモリだけ一気に解放することはできないから成立しない
というわけでコンパイラの中で構文解析結果であるところの木構造を破棄するのにお目にかかるぐらい
なキモス
破棄するときもバカ正直に10秒かけるつもりなのかとかそういう話だが
オブジェクトがリソースを所有しておりデストラクトを要するブツだったりすると
オブジェクトの占有メモリだけ一気に解放することはできないから成立しない
というわけでコンパイラの中で構文解析結果であるところの木構造を破棄するのにお目にかかるぐらい
なキモス
401はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 3b6f-7TBo)
2018/10/31(水) 01:44:07.13ID:y5TVZzW10 ソースコードを読んだわけじゃないが、
ウェブサーバの H2O はドカンと大きいメモリを確保して頭から順番に使っていくという戦略を取ってるのでクソ速いというのを
どこかで見た覚えがあるな。
ウェブサーバならセッションが基本単位と考えれば、
セッション開始時に大きいメモリを確保してセッション終了でまるっと捨てるというのは確かに理にかなった方針だと思う。
ウェブサーバの H2O はドカンと大きいメモリを確保して頭から順番に使っていくという戦略を取ってるのでクソ速いというのを
どこかで見た覚えがあるな。
ウェブサーバならセッションが基本単位と考えれば、
セッション開始時に大きいメモリを確保してセッション終了でまるっと捨てるというのは確かに理にかなった方針だと思う。
402デフォルトの名無しさん (ワッチョイ 2723-VFcb)
2018/10/31(水) 03:43:29.87ID:dHrKLKTO0 >>400
いやnewもdeleteもインプレイスでやるからメモリの確保と解放はまとめてできるんだ
んでコンストラクタとデストラクタはどっちにせよ必要なので、メモリの確保と解放が問題なんだよ
で、指摘の通り
メンバ変数がまたメモリを確保/解放してるとご利益がぐっと薄れるので
まとめて確保を使い始めるとベクターだなんだもショートストリング最適化みたいな
小サイズなら静的に確保したメモリを使うようなテクニックを使い始める。
LLVM の SmallVector やそれを基にした boost の smallvector なんかがそれか
いやnewもdeleteもインプレイスでやるからメモリの確保と解放はまとめてできるんだ
んでコンストラクタとデストラクタはどっちにせよ必要なので、メモリの確保と解放が問題なんだよ
で、指摘の通り
メンバ変数がまたメモリを確保/解放してるとご利益がぐっと薄れるので
まとめて確保を使い始めるとベクターだなんだもショートストリング最適化みたいな
小サイズなら静的に確保したメモリを使うようなテクニックを使い始める。
LLVM の SmallVector やそれを基にした boost の smallvector なんかがそれか
403デフォルトの名無しさん (ワッチョイ 2723-VFcb)
2018/10/31(水) 03:44:09.76ID:dHrKLKTO0 boost のは small_vector の typo
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 《離婚するかも…と田中圭は憔悴した様子》永野芽郁との不倫疑惑に元タレント妻は“もう限界”で堪忍袋の緒が切れた [ひかり★]
- 【文春】永野芽郁(25)&田中圭(40)燃え上がる不倫LINE ★23 [Ailuropoda melanoleuca★]
- 【東スポ】インドとパキスタン核戦争なら「死者1億2500万人」「世界の3分の1が飢餓」の衝撃データ [少考さん★]
- 【米】スーパーのコメ価格、4233円 17週連続値上がり 前年同期比で2145円高く ★3 [ぐれ★]
- 【社会】そりゃ時代錯誤だわ…東京を目指した理系大卒の女性が地方企業で受けた「驚くべき仕打ち」 [七波羅探題★]
- 鉄鋼クリフス、全米6カ所で高炉や工場休止 最終赤字拡大で [蚤の市★]
- 【動画】北海道の社長、従業員に馬乗りになって殴りまくってしまう。ちょっとエッチ注意 [485187932]
- 【悲報】氷河期世代さん「氷河期世代を優遇しないと自分より弱い弱者を狙って犯罪しまくるぞ!金寄越せ!金金金!」910万いいね [257926174]
- 田中圭「離婚になるかも」と焦燥⇐永野芽郁と相思相愛なんだから再婚すればよくね? [579392623]
- 幼稚園の時何組だった? [244219136]
- 女性の9割「吉岡里帆は可愛いと思うけど、あんまり好きじゃない」 これの理由wwwwwwwww [248133533]
- 病気になって苦しいがどうすりゃいいのよ