Форум программистов, компьютерный форум CyberForum.ru

Динамический массив с большим количеством элементов - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.81
luck
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 63
13.03.2013, 00:15     Динамический массив с большим количеством элементов #1
Нужно создать динамический массив (каждый элемент целое положительное число до 10^9), который по введенным данным создавал N элементов массива, где N может быть до 10^5.

unsigned long int *arr = new unsigned long int[num];

Я сделал так, но если количество элементов больше 45920, то выводит ошибку
"terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
This application has requested the Runtime to terminate it in unuasual way.
Please contact the application's support team for more information."
IDE Qt Creator.
Статические массивы типа int array[1000000]; сразу выводят ошибку, причем в обоих случая изменение типа элементов массива ничего не меняет.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2013, 00:15     Динамический массив с большим количеством элементов
Посмотрите здесь:

динамический массив из элементов структурного типа C++
Массив: определить индекс столбца с максимальным количеством нулевых элементов C++
Задан массив с количеством элементов n C++
Массив с неизвестным заранее количеством элементов C++
C++ Алгоритм быстрой сортировки не работает с большим количеством чисел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
luck
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 63
13.03.2013, 15:05  [ТС]     Динамический массив с большим количеством элементов #61
Спасибо, решение подошло, осталось разобраться что происходит в коде =\
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2013, 15:30     Динамический массив с большим количеством элементов
Еще ссылки по теме:

C++ Динамический массив, удаление и вставка элементов
C++ Применение массивов случайных чисел с большим количеством элементов
Вычислить разность между количеством отрицательных и количеством положительных элементов одномерного массива C++

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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,051
13.03.2013, 15:30     Динамический массив с большим количеством элементов #62
Я же все написал
берем массив на 32 элемента в числе максимум может быть 30 единиц ( 32 взял с запасом) обнуляем
когда вводим число подсчитываем количество единиц( просчет функцией)
например функция вернула 1 добавляем в массив с индексом 1
вернула 2 в массив с индексом 2
Цитата Сообщение от ValeryS Посмотреть сообщение
C++
1
2
3
4
5
for (int i=0;i<n;i++)
{
 cin>>k;
arr[func(k)]++; 
}
после окончания ввода в массиве будет лежать количество однотипны элементов
например в индексе один 3 (значит 3 функции вернули 1) в индексе 2 4(четыре функции вернули 2)

потом подсчитываем количество пар по формуле
n*(n-1)/2;
значит для единицы будет 3 пары 3*2/2=3
для двойки 6 пар 4*3/2=6
и суммируем их
Цитата Сообщение от ValeryS Посмотреть сообщение
C++
1
2
for (int i=0;i<32;i++)
           res+=(arr[i]*(arr[i]-1))/2;
Цитата Сообщение от luck Посмотреть сообщение
Спасибо, решение подошло,
не наблюдаю
Yandex
Объявления
13.03.2013, 15:30     Динамический массив с большим количеством элементов
Ответ Создать тему
Опции темы

Текущее время: 21:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru