2013-07-29 35 views
1

在C++中,map類很舒服。我想將所有行存儲爲對象,而不是爲了單獨的數據庫,我想爲要搜索的列創建map對象。我關心的是一個進程可以處理的最大對象。如果linux允許的話,使用map函數來檢索1000萬個對象中的一個對象是不錯的選擇?我並不擔心堅持數據。每個進程的對象是否有最大限制?

回答

3

不,每個進程沒有最大數量的對象。對象(如C++對象)是OS不知道的抽象。這方面唯一有意義的限制是使用的內存量。

你可以使用盡可能多的map完全填滿你的RAM,我保證。

+0

謝謝你的承諾。 – neckTwi

3

正如您在參考文檔中看到的,常量map::max_size會讓您知道數字。

這應該是上IX86硬件/ OS 2^31-1和2^64-1上AMD64硬件/ 64位操作系統

可能的其它附加信息,here

4

你在找什麼是std::map::max_size,從參考報價:

...反映了容器的大小的理論極限。在運行時,容器的大小可能會被限制爲小於max_size()的值,大小可用RAM的數量。

1

對象是編程語言的概念。事實上,這些過程並不知道這些對象。有了足夠的RAM空間,您可以在程序中儘可能多地分配對象。 關於你的第二個問題,我的答案是你在程序中選擇的數據結構取決於你想在程序中解決的問題。 Map是用於快速訪問對象,測試存在等的合適的數據結構,但不足以維持對象的順序。

相關問題