![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
kiLLProg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 1.10.2008 Репутация: нет Всего: нет |
Для решения задачи с помощью полного перебора использую динамический массив (вектор), куда сохраняются разные комбинации. При работе консольного кода:
выделяется 741 мб памяти, больше не может, возникает ошибка. При работе кода в визуальном приложении, выделяется всего 470 мб памяти. Почему я не могу получить больше выделенной памяти? Хотя у меня Win 7 64 bit. Читал, что win 32 может максимум выделить 2ГБ, но в моем случае такого и близко нету. |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Сделай 64-х битный проект и ни в чем себе не отказывай.
Думаю, проблема в том, что ты увеличиваешь вектор постепенно. В итоге, память фрагментируется. Именно поэтому ты не получаешь свои заветные 1.75 ГБ (это ограничение для 32-х битных windows-программ). Чтобы проверить мое предположение сделай резервирование перед циклом: L.reserve(175 * 1024 * 1024 / 100 * 1024 / sizeof(_vertex)) Добавлено через 44 секунды Кстати, блок try/catch лучше вынести из цикла (т.е. организовать до цикла). |
|||
|
||||
kiLLProg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 1.10.2008 Репутация: нет Всего: нет |
Получилось, спасибо.
![]()
При таком выделении памяти происходит ошибка, слишком много элементов. Это сообщение отредактировал(а) kiLLProg - 30.7.2012, 03:35 |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
||||
|
||||
kiLLProg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 1.10.2008 Репутация: нет Всего: нет |
Спасибо за ссылку, ответила на все мои вопроссы. А 40255000 комбинаций недостаточно для решения задачи
![]() ![]() |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
||||
|
||||
kiLLProg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 1.10.2008 Репутация: нет Всего: нет |
Да, точно. Но зато это самый быстрый и легкий способ, у которого существенный недостаток - жорево оперативы. Пока пытаюсь решить задачу так. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |