[過去ログ]
スレ立てるまでもない質問はここで 164匹目 (1002レス)
スレ立てるまでもない質問はここで 164匹目 http://mevius.5ch.net/test/read.cgi/tech/1681132438/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
773: デフォルトの名無しさん [sage] 2023/06/15(木) 11:00:14.08 ID:Aj29e5Ws 俺が単方向リストを自分で実装したのは中学生の頃だったが双方向はなかなかバグが取れなかった 今思うとダラダラ長ったらしくコーディングして分割が不十分だったし単体テストをしてなかったからだな ややこしいことをややこしいまま実装するのは誰でも大変 上手な人はパフォーマンスより読みやすさを優先しつつ確実に動く小さな部品を作ってそれを組み立ててるよ 当時は「どんなプログラムでも必ずバグがある」と言われてたしセグフォでアプリが落ちるのなんて普通すぎて誰も気にしなかった オブジェクト志向と単体テストが普通になってから世の中変わったわ http://mevius.5ch.net/test/read.cgi/tech/1681132438/773
775: デフォルトの名無しさん [sage] 2023/06/15(木) 11:22:07.74 ID:Aj29e5Ws 唐突に見えるのは長文が読めないからだな たとえばリスト中の一つのノードの後に新しいノードを挿入する関数insert_after(Node* node, Node* new_node)を作る場合 その関数の中に全てのロジックを書きたくなるけどそれをあえて次のように分割する get_after //引数で指定されたノードの後のノードを取得 combine_after //一つのノードの後に別のノードを繋ぐ combine_before //一つのノードの前に別のノードを繋ぐ そうしたらinsert_afterはこうなる bool insert_after(Node* node, Node* new_node) { Node* after=get_after(node); if (node==new_node||new_node==after) return false; combine_after(node, new_node); combine_before(new_node, node); combine_after(new_node, after); combine_before(after, new_node); return true; } http://mevius.5ch.net/test/read.cgi/tech/1681132438/775
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.803s*