Мне интересно, используют ли стандартные алгоритмы сортировки библиотек (например, std :: sort) кучную память для сортировки.std :: использование памяти алгоритмов сортировки
Есть ли какой-либо надежный источник, как узнать, какой тип (куча, стек) и сколько временной памяти используется алгоритмом сортировки или любым стандартным библиотечным алгоритмом в целом?
Основой является то, что я рассматриваю введение некоторых стандартных алгоритмов библиотеки во встроенную среду, в которой использование контролируемой памяти имеет решающее значение. (особенно куча не должна использоваться).
Спасибо заранее!
Я не знаю, есть ли какие-либо общие ответы или «гарантии». Но если проблема имеет решающее значение, тогда общий ответ, вероятно, недостаточно хорош. Вам нужен ответ для конкретной реализации для std :: sort и такой на платформе, которую вы используете. Возможно, вам повезло, так как многие вещи std (особенно все шаблоны) полностью реализованы в заголовках C++. В этом случае на самом деле нет ничего, что мешало бы вам взглянуть на реализацию самостоятельно, чтобы проверить все, что вас беспокоит. – TheUndeadFish
Только что просмотрел недавний стандартный черновик. Я не вижу ничего, заявляя, что 'sort' не может использовать кучу, просто требования о том, как поддерживается' swap'. Копаясь через 'swap', снова нет подробностей о том, используется ли куча для хранения временных рядов во время обмена. – user4581301
@ user4581301 Стандарт даже не имеет понятия «куча» и «стопка» для начала, поэтому любая гарантия относительно «где» выделена память, будет довольно удивительной. –