タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

reverseに関するtell-kのブックマーク (1)

  • C++ の string と vector の reserve() の挙動 - bkブログ

    C++ の string と vector の reserve() の挙動 C++ の string と vector には前もって容量を確保するための reserve() というメンバ関数があります。何気なく使っていた関数ですが最近になって興味深い挙動に気づきました。 reserve() の基 string と vector の reserve() は前もって容量 (capacity) を確保しておくためのメンバ関数です。前もって容量を確保 (reserve) しておけば、データの追加時に発生する再割り当て (reallocation) を防ぐことができ、効率的です。 たとえば、何もしないで文字列に 1,000文字追加した場合、(内部的に倍々で容量を増やしていくため)10回程度の再割り当てが発生しますが、 s.reserve(1000) のように容量を確保しておけば 1回の割り当て (

    tell-k
    tell-k 2009/02/14
    『# reserve() を間違って使うと非常に非効率 # string の reserve() は現在より容量を減らせる # vector の reserve() は現在より容量を減らせない # string の reserve() は「指数的成長ポリシー」を発動する # vector の reserve() は「指数的成長ポリシー」を発動しない # string の reserve() するときは余計なお世話にならないように気をつけるべし # Mac OS X でデバッグ情報つき C++ ライブラリを使うときは -lstdc++-static # gdb にソースコードの場所を教えるときは dir コマンド』
  • 1