В C++, map
класс очень удобен. Вместо того, чтобы искать отдельную базу данных, я хочу сохранить все строки как объекты, и я хочу создать объект map
для поиска столбцов. Меня интересуют максимальные объекты, обрабатываемые процессом. И использует функцию карты для извлечения объекта среди, скажем, 10 миллионов объектов, если разрешает linux, является хорошим выбором? Я не беспокоюсь о сохранении данных.Максимальный лимит для объектов в процессе?
ответ
Нет, нет максимального количества объектов на процесс. Объекты (как, например, объекты C++) - это абстракция, о которой OS не знает. Единственным значимым ограничением в этом отношении является объем используемой памяти.
Вы можете полностью заполнить свою ОЗУ, используя как можно больше map
, я обещаю.
Как вы можете видеть в справочной документации, constannt map::max_size сообщит вам номера.
Это должно быть 2^31-1 на ix86 оборудования/OS и 2^64-1 на amd64 аппаратное обеспечение/64-битной ОС
Возможная additionnal информация here.
Что вы ищете std::map::max_size
, цитируя из ссылки:
... отражает теоретический предел размера контейнера. Во время выполнения размер контейнера может быть ограничен значением, меньшим, чем max_size(), на количество доступных оперативной памяти.
Объект - понятие в языке программирования. Фактически, процессы не знают об объектах. С достаточным объемом оперативной памяти вы можете выделить как можно больше объектов в своей программе. Что касается второго вопроса, я отвечаю, что структура данных, которую вы выбираете в своей программе, зависит от проблемы, которую вы хотите решить в своей программе. Карта является подходящей структурой данных для быстрого доступа к объектам, тестирования и т. Д., Но недостаточно для поддержания порядка объектов.
спасибо вам за обещание. – neckTwi