1

C++ では、mapクラスは非常に快適です。別のデータベースを使用する代わりに、すべての行をオブジェクトとして保存し、検索する列のオブジェクトを作成したいと考えてmapいます。プロセスが処理できるオブジェクトの最大数に関心があります。そして、Linux が許せば、map 関数を使用して、たとえば 1000 万個のオブジェクトの中からオブジェクトを取得することは良い選択でしょうか? データの永続化については心配していません。

4

4 に答える 4

4

あなたが探しているのはstd::map::max_size、参照から引用したものです:

...コンテナのサイズに関する理論上の制限を反映しています。実行時に、コンテナーのサイズは、使用可能な RAM の量によって max_size() よりも小さい値に制限される場合があります。

于 2013-07-29T15:03:08.730 に答える
3

リファレンス ドキュメントでわかるように、定数map::max_sizeで数値がわかります。

これは、iX86 ハードウェア/OS では 2^31-1、amd64 ハードウェア/64 ビット OS では 2^64-1 になります。

可能性のある追加情報はこちら.

于 2013-07-29T13:18:23.407 に答える
3

いいえ、プロセスごとのオブジェクトの最大数はありません。オブジェクト (C++ オブジェクトなど) は、OS が認識しない抽象化です。この点で唯一の意味のある制限は、使用されるメモリの量です。

必要なだけ使用して RAM を完全に満たすことができるmapと約束します。

于 2013-07-29T14:06:56.327 に答える