В C++, когда я использую массив с определенным размером: int a[10000];
в качестве локальной переменной, разрешенный размер меньше, чем если бы я объявлял его глобальной.C++ локальный контейнер
Я знаю, что это связано с размером стека функции.
Но как насчет контейнеров, таких как вектор, список, очередь, стек, priority_queue, карта и т. Д.? Ограничены ли они локальными переменными, такими как int a[10000]
?
Эти контейнеры ограничены кучей, а не стеком – AndyG
'vector' и т. Д. Динамически распределяют их внутреннее хранилище. «Вектор» находится в локальном хранилище, обычно в стеке, но «вектор» представляет собой немного больше, чем пару указателей на данные, хранящиеся в другом месте с очень разными пределами размера. – user4581301
Зависит от системы, в которой они работают. Они используют динамическое распределение памяти, которое обычно представляет собой больший пул памяти. – NathanOliver