[解決済み] データ構造が「押し付けがましい」とはどういう意味か?
質問
という言葉を目にしたことがあります。 押し付けがましい という用語は、リストやスタックなどのデータ構造を説明するために使われていますが、どのような意味なのでしょうか?
侵入型データ構造のコード例と、侵入型でないデータ構造との違いを教えてください。
また、なぜ侵入型(または、非侵入型)にするのでしょうか?メリットは何ですか?デメリットは何でしょうか?
どのように解決するのですか?
押し付けがましいデータ構造とは、格納しようとする要素を格納するために、その要素からの手助けを必要とするものです。
言い方を変えましょう。そのデータ構造に何かを入れると、その "something"は、何らかの形で、そのデータ構造にあるという事実を認識するようになります。データ構造に要素を追加すると、その要素が変化します。
例えば、各ノードが左と右のサブツリーへの参照と、そのノードの要素値への参照を持っている、非侵入型の二分木を構築することができます。
または、それらのサブツリーへの参照が値自体に埋め込まれている、侵入的なものを構築することもできます。
押し付けがましいデータ構造の例としては、変更可能な要素の順序付きリストがあります。要素が変更された場合、リストは並べ替えられる必要があるため、リストオブジェクトは彼らの協力を得るために要素のプライバシーに侵入しなければなりません。
ORMシステムは通常、オブジェクトの大きなリストに対する反復を最小にするために、侵入的なデータ構造を中心に展開されます。たとえば、データベース内のすべての従業員のリストを取得し、そのうちの 1 人の名前を変更し、それをデータベースに保存する場合、従業員オブジェクトが変更されると、そのオブジェクトがどのリストに含まれているかを知っているため、侵入型の従業員リストが通知されるでしょう。
非侵入型リストには通知されず、何がどのように変更されたかを自分で把握する必要があります。
関連
-
[解決済み】C++でint型に無限大を設定する
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)
-
[解決済み] explicit キーワードの意味は?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] JSONPとは何か、なぜ作られたのか?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] C言語における「static」の意味とは?
-
[解決済み] (関数型)リアクティブプログラミングとは?
-
[解決済み】Redisに使用されている基礎的なデータ構造は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 unsigned int vs. size_t
-
[解決済み】C-stringを使用すると警告が表示される。"ローカル変数に関連するスタックメモリのアドレスが返される"
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】「Expected '(' for function-style cast or type construction」エラーの意味とは?
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド