> Хорошая иллюстрация не самого вдумчивого чтения тз.
> В условиях сказано, что _размер_ объектов заранее известен. Их количество
> тоже упомянуто, но про неизменность этого числа не сказано ничего!
Это следует из дальнейшего описания. Смысл поста в том, что если понадобилось несколько (допустим 5) однотипных объектов, то вместо пяти вызовов new выгоднее один раз вызвать malloc на все пять, создать указатели (база+смещение) на них и работать с каждым из них по отдельности. Никаких итераторов не предполагается, так как это просто отдельные пять объектов.
> Я могу сделать malloc на сумму размера, и выделить потом указатели на эту штуку.
Так вот, выделение массива из 5 объектов решает ту же задачу, избавляя от низкоуровневой возни с malloc, выравниванием и т.д.
При этом вектор эту задачу не решает или решает плохо. Как я и писал, если не изменять размер — оверхед, если изменять — повисшие указатели стреляют по ногам.
Хорошая иллюстрация неправильного использования возможностей С++.
Вектор это массив позволяющий динамически изменять размер. В условиях было фиксированное количество объектов, то есть вектор тут, во-первых, явный оверхед, а, во-вторых, прекрасный шанс выстрелить себе в ногу, изменив таки его размер, что может вызвать перевыделение массива, и обратившись к объекту по старому указателю.
Они, естесственно, абсолютно идентичны. Важен баланс выделения-поглощения. Когда животное (включая нас с вами) выдыхает СО2, О2 берется из воздуха, С поступает с пищей, которую производят растения поглощая СО2 из атмосферы. Таким образом общее количество СО2 в атмосфере не меняется. Сжигание же ископаемого топлива увеличивает количество СО2 в атмосфере.
Нет ничего плохого в СО2. Все животные выделяют СО2 при дыхании. Важно откуда С взят. Если растениями из воздуха — ОК, если Газпромом из недр — опасно.
Странное заблуждение. Откуда исполнитель знает, что вам нужно? Предположим вы заказываете проект дома архитектору. Вы укажете количество комнат, или состав семьи, а комнаты архитектор сам расчитает, вам нравится двухэтажные дома, или никаких лестниц — один этаж. Можете конкретизировать материал стен, а можете указать только географическую зону. Вот это и будет ТЗ для архитектора. Сам архитектор ничего такого написать не в состоянии — он же не телепат.
У меня на двух гигах прекрасно работает. Это при запущеных: пара субд, фаерфокс с десятком вкладок, и хром с парой, плюс скайп, консоль с полудюжиной табов.
Что я делаю не так?
Все с точностью до наоборот. Контейнеры (по крайней мере openvz) считают виртуальную память выделенную процессам, которая обычно сильно больше реально занятой физической памяти. Поэтому для выполнения аналогичных задач openvz требует почти в два раза больше памяти. То есть 512 openvz аналогично 256 kvm.
Вообще очень подозрительно, что поставщик облачных решений не знает азов.
> В условиях сказано, что _размер_ объектов заранее известен. Их количество
> тоже упомянуто, но про неизменность этого числа не сказано ничего!
Это следует из дальнейшего описания. Смысл поста в том, что если понадобилось несколько (допустим 5) однотипных объектов, то вместо пяти вызовов new выгоднее один раз вызвать malloc на все пять, создать указатели (база+смещение) на них и работать с каждым из них по отдельности. Никаких итераторов не предполагается, так как это просто отдельные пять объектов.
> Я могу сделать malloc на сумму размера, и выделить потом указатели на эту штуку.
Так вот, выделение массива из 5 объектов решает ту же задачу, избавляя от низкоуровневой возни с malloc, выравниванием и т.д.
При этом вектор эту задачу не решает или решает плохо. Как я и писал, если не изменять размер — оверхед, если изменять — повисшие указатели стреляют по ногам.
Вектор это массив позволяющий динамически изменять размер. В условиях было фиксированное количество объектов, то есть вектор тут, во-первых, явный оверхед, а, во-вторых, прекрасный шанс выстрелить себе в ногу, изменив таки его размер, что может вызвать перевыделение массива, и обратившись к объекту по старому указателю.
Чето мне стремно дарить пароли от амазоновского AWS, Rackspace-a, одеска и пайонира.
Ну и от gmail, где все все ключи от предыдущих сервисов сходятся.
Про SSH тоннели надеюсь в курсе?
Что я делаю не так?
Вообще очень подозрительно, что поставщик облачных решений не знает азов.