[過去ログ] C++相談室 part150 (935レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
896: 2020/05/11(月)21:45 ID:1e8qKpQP(2/2) AAS
コンセプトがくればこういう悲しい出来事も減るのかな
897: 2020/05/11(月)21:47 ID:zAHWYKkR(1) AAS
C++って何作れば勉強になるんだろ
898: 2020/05/11(月)21:54 ID:UkUll7O4(6/6) AAS
縦10マス×横40マスの地図で幅優先探索を100回まわして時間計ったら、
vectorだと989ms
dequeだと904ms
で大差ないかんじでした
デフォルトのままvectorを利用していきたいと思います
アドバイス下さいました熟練者の皆さまありがとうございましたm(_ _)m
899
(2): 2020/05/11(月)22:38 ID:M5DpbX0A(2/2) AAS
漏れは、2分ヒープを自分で作って、ソートしたりしたけど、

配列の[0]は使わず、[1]から始めると計算が楽なので、
親1, 左右の子は2, 3で、法則は親n, 子2n, 2n+1

コンテナの最後にオブジェクトを追加し、
それが親の数値より小さい場合は、
再帰的に親と交換していく (親子を交換)

再帰的に、親は両方の子以下の数値をもつ。
左右の子(兄弟)の大小関係は考慮しない

配列の先頭要素[1]をPopし、配列の最後の要素を、
[1]に持ってきて、そこから再帰的に、左右の子と比べながら、
省4
900
(1): はちみつ餃子 ◆8X2XSCHEME 2020/05/12(火)00:41 ID:NsC/lgb+(1/4) AAS
>>884
質問者はこの場面でラムダ式を持ち出したくないと >>860 に書いてある。
どうして文脈を読めんのだ。
901: 2020/05/12(火)01:32 ID:nCmEHjd6(1) AAS
>>899
なるほど、n, 2n, 2n+1 番の要素に格納してゆくかんじですか、素晴らしいアイデアですね
自力での実装がどうしても必要になったら、配列で作るときのヒントにさせていただきますね

>vectorだと989ms
探索1回あたり10msもかかるのはちょっとおかしいだろうと思って見直したら、
ソリューション構成をDebugにして、「デバッグ開始」してるせいでした
ソリューション構成をReleaseにして、「デバッグなしで開始」にしたら、
探索1回あたり0.02ms弱に収まりました(vector使用時)
STLコンテナ使っててデバッグモードだと500倍も遅くなりうるのか…
ちなみにdeque使用時は0.05msでやや遅めだったのでやはりvectorを使う方がよさそう
902: 899 2020/05/12(火)02:06 ID:q3FkXSvr(1) AAS
普通の実装では、[0]から始めると、
親0, 左右の子は1, 2で、親1, 左右の子は3, 4で、
親n, 子2n+1, 2n+2、となり複雑

子3なら親は、(3-1)/2 = 1
子4なら親は、(4-1)/2 = 1.5 で、切り捨てて1

>>899
では、配列の[0]は使わない。[1]から始めると計算が楽
親1, 左右の子は2, 3で、親n, 子2n, 2n+1

子2なら親は、2/2 = 1
子3なら親は、3/2 = 1.5 で、切り捨てて1
903: 2020/05/12(火)09:47 ID:9iboxsgQ(1) AAS
呼び出し履歴で過去の状態に戻れるのは、記録してるからだし。
904: 2020/05/12(火)11:15 ID:4WwqN1hQ(1) AAS
dequeue一択
905: 2020/05/12(火)11:26 ID:xLvzOPR4(1) AAS
そういえばdeque使ってよかったって経験ないなぁ
906: 2020/05/12(火)11:33 ID:8l4UOEBM(1/2) AAS
heap構造ならvectorが速いよね
事前に適切なサイズでreserveしておけば再配置も起きないし
907: 2020/05/12(火)11:52 ID:Jgs88fl2(1/3) AAS
前後にニョキニョキ伸ばすような用途だとdequeが一番よ
908
(1): 2020/05/12(火)12:41 ID:ph0RCKO5(1/2) AAS
複数のソース・ヘッダーファイルのセットから一つの動的dllは作れないのでしょうか?
909
(1): はちみつ餃子 ◆8X2XSCHEME 2020/05/12(火)12:45 ID:NsC/lgb+(2/4) AAS
>>908
作れるよ。
910
(1): 2020/05/12(火)13:34 ID:ph0RCKO5(2/2) AAS
>>909
ありがとん
1つのソース・ヘッダーのセットから1つのdllを作るのには成功したのですが、解説サイトも見つからず困っています
911: はちみつ餃子 ◆8X2XSCHEME 2020/05/12(火)13:43 ID:NsC/lgb+(3/4) AAS
>>910
ツールチェインによって手順は違うけど、
ソースファイルがひとつであろうが複数であろうが特別に違うことはしないと思うんだけど。
912
(1): 2020/05/12(火)14:09 ID:j/0vQ47K(1/2) AAS
何が困っているのかさっぱりだぜ
リンカでdllにするんだろ
複数のオブジェクトファイルをリンクすることになんの疑問が
913: 2020/05/12(火)14:15 ID:9Z5koysX(1/4) AAS
BASICとかやってた部類の人間だとリンクの概念とかわからんかもね
914: 2020/05/12(火)14:17 ID:9Z5koysX(2/4) AAS
そういう化石の人がつい最近いじりはじめた可能性もある
915: はちみつ餃子 ◆8X2XSCHEME 2020/05/12(火)14:18 ID:NsC/lgb+(4/4) AAS
コマンドラインから使うときでもだいたいコンパイラドライバが
いい感じにやってくれるから細かなことまで意識する機会も
あまり無いしな。
1-
あと 20 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.247s*