タグ

データ構造に関するkei_yam1209のブックマーク (2)

  • Swiftで構造体、クラスどちらにするかの基準 | Cyber Passion for iOS

    これはstruct(構造体)かclass(クラス)どちらで宣言すべきか。慣れないうちは悩むことがあると思います。どちらにするのが良いかを考える基準について説明したいと思います。 参考: The Swift Programming Language: Classes and Structures structとclassの違い まずはstructとclassの違いを理解しておきましょう。 structは値渡し、classは参照渡し structは継承できない、classは継承できる ただしstructもextensionでメソッド追加はできる structはselfのプロパティを変更するメソッドはmutatingキーワードが必要になる structの方が望ましいもの シンプルなデータ構造である プロパティも値渡しの型である、つまりstructである Int、Double、String、Dic

    Swiftで構造体、クラスどちらにするかの基準 | Cyber Passion for iOS
  • キャッシュフレンドリーな二分探索 ー データ構造を再考する | POSTD

    現代のコンピュータのアーキテクチャに搭載されている高速のキャッシュメモリは、 参照の局所性 に優れた(=一連のものとしてアクセスした要素が、互いに近いメモリのアドレスに配置されている)データ構造を好みます。これは、 Boost.Containerの平坦な(ツリー状ではない)連想コンテナ のようなクラスを陰で支えている理論的根拠です。要素を連続的に(かつ順序だてて)保存すると同時に、標準的なC++ノードベースの連想コンテナの機能性をエミュレートします。以下にあるのは、要素が0から30の範囲の時、 boost::container::flat_set の中で 二分探索 がどのように行われるのかを示した例です。 探索で目的の値を絞り込むにつれて、アクセスされる要素は次第に近くなっていきます。そのため、最初のうちは大きな距離を飛び越えていくような感じであっても、参照の局所性は このプロセスの最後の

    キャッシュフレンドリーな二分探索 ー データ構造を再考する | POSTD
  • 1