>>549
あなたの誘導に沿って説明しよう。
要素の型をTYPEとすると、要素の1つのバイト数を、E=sizeof(TYPE)であり、
それが、x 個ある場合を考える。
L(x) = H1 + x * (E + P * 2) // list に必要なバイト数
V(x) = H2 + x * E * 1.5 // vector に必要なバイト数
となっている。
P は、ポインタ1つ当りのバイト数であり、Windows の 32BIT モードの時は、4 である。
これらの関数は、どちらも n に対する1次関数で、
グラフにすると、傾きはそれぞれ、
a_L = E + P * 2 // list の必要バイト数の傾き
= E + 8
a_V = 1.5 * E // vector の必要バイト数の傾き
だ。
要素1つ辺りのサイズ E が十分大きい場合、たとえば、100バイトの時を考えれば、
a_L = 100 + 8 = 108
a_V = 1.5 * 100 = 150
となる。
だから、V(x)の傾きの方が、L(x) の傾きのよりも大きい。
だから明らかに V(x) の方が効率が悪い事になる。H1, H2 がどんな
値であれ、要素数 x が十分大きい場合にはメモリ効率の良さは
xに対するグラフの傾きで決まる。H1, H2 は、いわゆる「y切片」
を決めるだけで、x が大きい時には影響はなくなっていくから。
C++相談室 part143
■ このスレッドは過去ログ倉庫に格納されています
576デフォルトの名無しさん (ワッチョイ)
2019/07/03(水) 23:42:46.34ID:Odxsa8jS0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【北区小学校火災】女性教師「電気ストーブ近くで洗濯物を乾かしていた」 失火とみて捜査 燃えた残骸に“繊維片”付着 ★8 [Ailuropoda melanoleuca★]
- 【W杯】元ブラジル代表ロナウド氏「日本には簡単に勝てる」決勝T1回戦で対戦可能性…避けたいのは「オランダ」 ★3 [首都圏の虎★]
- 【クールジャパン】ゲームやアニメなどコンテンツ産業の海外展開支援、政府が司令塔の法人設立へ…日本の「勝ち筋」に官民の叡智結集 [樽悶★]
- 【ブロマンス詐欺】「好き♡」 70代男性にメッセージ 現金2000万円をだまし取った疑い 64歳の男を逮捕 [nita★]
- 【アニメ】『日本の最強アニソンBEST100』 1位はまたもや『残酷な天使のテーゼ』… 視聴者は「出来レース」「見飽きた」の声★2 [冬月記者★]
- 【サッカーW杯】中東勢が大苦戦 アジア杯連覇のカタール含む5チームが第2節終了で勝利なし [首都圏の虎★]