192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 935
1

Максимальный размер массива, vector, set, map

04.01.2018, 11:21. Показов 4228. Ответов 14
Метки нет (Все метки)

Как можно узнать максимальный размер массива, vector, set, map, стеков, очередей. Это зависит от оперативной памяти компьютера?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.01.2018, 11:21
Ответы с готовыми решениями:

set и map при добавлении сохраняется только последний элемент. Размер множества всегда равен 1
При вызове функции с параметрами (declare some_string) в множество добавляется элемент, и он...

Какой максимальный размер vector?
Добрый день! Пишу программку и на строчке for (int i = 0; i < vec.size(); ++i) { // do...

Map<string,vector<pair<string,vector<int> > > > Поиск во всем map
Как пройти циклом по всему map такого вида? map&lt; string, vector&lt; pair&lt; string, vector&lt;int&gt; &gt; &gt; &gt;...

Обращение к элементам vector, который находится в map, находящийся в map
Всем добрый день! Имеется такой контейнер. Как обращаться к элементам вектора и как пушбэчить...

14
1718 / 567 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
04.01.2018, 11:53 2
no swear, ты тоже гуглить не умеешь?
http://ru.cppreference.com/mwi... size%28%29
1
2756 / 1910 / 569
Регистрация: 05.06.2014
Сообщений: 5,560
04.01.2018, 13:22 3
Цитата Сообщение от no swear Посмотреть сообщение
Как можно узнать максимальный размер массива, vector, set, map, стеков, очередей. Это зависит от оперативной памяти компьютера?
При использовании стандартных аллокаторов, это зависит от звезд на небе. Потому как помимо ограничений на доступную память, есть еще и такая штука как фрагментация этой памяти (это когда есть целый гигабайт, но только кусочками по байту).
Цитата Сообщение от мановар Посмотреть сообщение
no swear, ты тоже гуглить не умеешь?
http://ru.cppreference.com/mwi... size%28%29
Это показывает только теоретическую погоду на Марсе. Вы на 64-битовой системе этот max_size выполните, потом сравните результаты с реально доступной памятью, вместе посмеемся.
1
1718 / 567 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
04.01.2018, 13:31 4
Renji, там и написано, что не все так просто. И в 32-битовой посмеяться можно.
1
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 935
04.01.2018, 18:43  [ТС] 5
А как для массива узнать. max_size для массива не работает
0
2756 / 1910 / 569
Регистрация: 05.06.2014
Сообщений: 5,560
04.01.2018, 18:54 6
Цитата Сообщение от no swear Посмотреть сообщение
А как для массива узнать. max_size для массива не работает
Никак. Уже созданный массив менять свой размер не может, соответственно и понятие "максимального" размера для него бессмысленно. Массив которому еще предстоит быть созданным в качестве локальной переменной, берет память из стека. Каких либо штатных механизмов проверяющих есть ли в этом стеке достаточно места не предусмотрели. Так что стандартная практика - просто не пихать в стек большие массивы. Или рыться в настройках компилятора, чтобы явно задать большой стек.
1
1718 / 567 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
04.01.2018, 20:16 7
no swear, про какой массив идет речь - стек или кучу?
1
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 935
04.01.2018, 22:08  [ТС] 8
Цитата Сообщение от мановар Посмотреть сообщение
про какой массив идет речь
Куча
C++
1
int massiv[100]; // Вот такой массив
0
2756 / 1910 / 569
Регистрация: 05.06.2014
Сообщений: 5,560
04.01.2018, 22:10 9
Цитата Сообщение от no swear Посмотреть сообщение
Куча
Куча это int*array=new int[100];. А то что вы привели, это создание переменной на стеке.
1
1718 / 567 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
04.01.2018, 22:27 10
Renji, говорю же гуглить не умеет.
Максимальная размерность статического массива
1
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
05.01.2018, 03:55 11
Цитата Сообщение от Renji Посмотреть сообщение
А то что вы привели, это создание переменной на стеке.
Да?
А если так:
C++
1
2
int arr[42];
int main(....
1
2756 / 1910 / 569
Регистрация: 05.06.2014
Сообщений: 5,560
05.01.2018, 14:40 12
Цитата Сообщение от avgoor Посмотреть сообщение
Да?
А если так:
И так не куча, а статическая переменная. Память под нее выделяется через механизмы несколько отличные от new/delete.
1
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
05.01.2018, 15:05 13
Цитата Сообщение от Renji Посмотреть сообщение
И так не куча
Главное, что не:
Цитата Сообщение от Renji Посмотреть сообщение
переменной на стеке.
Тем более:
1) Смотря, что называть кучей.
2) ничто не запрещает компилятору располагать статические объекты в куче.
1
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 935
05.01.2018, 16:15  [ТС] 14
Цитата Сообщение от мановар Посмотреть сообщение
говорю же гуглить не умеет.
Если бы я нашел ответ в гугле я бы не задавал вопрос здесь.

Цитата Сообщение от Renji Посмотреть сообщение
Куча это int*array=new int[100];
Извините что неправильно называю вещи. Просто до стеков и куч в памяти и то как это всё работает мне ещё далековато, я знаю что такое стек и куча но здесь по моему речь идёт о другом
0
1718 / 567 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
05.01.2018, 16:23 15
Цитата Сообщение от no swear Посмотреть сообщение
Если бы я нашел ответ в гугле я бы не задавал вопрос здесь.
Да шучу я. Вот почитай, может пригодится. У самого в закладках, но все руки не доходят.
Память компьютера
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.01.2018, 16:23
Помогаю со студенческими работами здесь

Как можно увеличить размер вектора, который является элементом вектора vector<vector<int>>arr(n, vector <int>)
Написал программу, которая создает вектор 'а' векторов 'b', вектора 'b' содержат 2 числа. Стало...

Максимальный размер массива
Доброго времени суток. Возник вопрос,при написании программы Была задача-в файле найти...

Максимальный размер массива
Допустим,массив на 1000,но ввели только 10,можно как-то выделить только заполненные места...

Максимальный размер массива
Добрый день! Получил задание от преподавателя количественно измерить производительность...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru