std::vector<>
На то может быть много причин:
1) на ANSI C уже давно никто не пишет.
2) когда создаешь новый прокт в студии, его файлы имеют расширение *.h и *.cpp
3) в студии зашита функция создания классов
4) писать на С++ - это требование сверху
5) человек находится в должности "программист на С++"
Короче говоря, для выбора С++, как видишь, может быть масса причин.
Кстати, мое предположение о том, что вектор объектов создается ради того, чтобы избежать утечек памяти - это не шутка :( Мои коллеги (один слава богу уже не программирует... правда руководит :D, а другой в последнее время все больше на C# фигачет) очень не любят указатели и, если возможно, везде вставляют сам объект. Поэтому у нас полно объектов-полей класса :) Ведь
иначе ты никак не передашь состояние объекта из одной функции в другую и не вернешь его назад. И официальное объяснение было именно такое - "во избежании утечек памяти".