1. ホーム
  2. c++

[解決済み] C++の "multiset<int>"に相当するPythonはありますか?

2022-03-17 15:41:19

質問

C++のコードをPythonに移植しているのですが、データ構造の1つが多重集合なのですが、Pythonでこれをどのようにモデル化すればいいのかわかりません。

をしましょう。 ms は、C++の multiset<int>

どのように ms の使用方法(いくつかの例を掲載します)

multiset<int>::iterator it = ms.find(x)
ms.erase(it)

ms.insert(x)
ms.end()
ms.lower_bound(x)
ms.clear()

解決方法は?

ないんです。参照 Pythonの標準ライブラリ - 平衡二分木のモジュールはありますか? については、C++のツリーコンテナ( map , set , multimap , multiset ) をPythonで作成します。

私が思いつく最も近い方法は、整数と数(これも整数)を対応させた辞書を使うことです。しかし、これではキーを順番に並べることができない。 lower_bound . 代替案としては、すでに他の方が提案されているように、順序付きリストを使用することです。(整数、数)のタプルのリストでしょうか。挿入をすべて行った後に検索を行う必要がある場合、辞書を構築のための一時的な構造体として使用し、挿入をすべて行った後にリストを構築し、そのリストを検索に使用することができます。