int main()
{
SetConsoleOutputCP(1251);
time_t start, finish, res;
start = clock();
vector<double>c;
const int Size = 100000000;
for (int i = 0; i < Size; ++i)
{
c.push_back(0.5);
}
finish = clock();
res = finish - start;
cout << res;
cin.get();
}
Из-за чего такая ошибка? И как её исправить?
Ну, получается, что вы запрашиваете 100000000*8 байт памяти, т.е. примерно под 800МБайт памяти. С учетом того, что вектор обычно запрашивает лишнее - очень может быть, что затребованы где-то полтора гигабайта...
Варианты - первый - зарезервировать память сразу, добавив перед циклом c.reserve(Size);
- тогда вы ограничитесь 800 Мбайтами но будете мерить не совсем ту эффективность - без выделения памяти; второй - уменьшить раз в 10 количество элементов, и выполнить ваши действия с созданием и заполнением (и уничтожением) вектора в цикле 10 раз, ну, или третий - создавать 64-разрядное приложение...
Виртуальный выделенный сервер (VDS) становится отличным выбором
Хочу что бы JDK11 был выбран, по умолчанию, вручнуюВвожу команду:
В классе PriorityQueue определен конструктор, который принимает аргументом CollectionВ этом конструкторе имеется проверка аргумента на соответствие...