Почему пустой вектор вызывает конструктор по умолчанию для типа значения?

Используя g ++, я заметил, что создание вектора нулевого размера вызывает один раз конструктор параметризованного типа объекта вектора. Затем он удаляется. Почему это происходит?

#include <iostream>
#include <vector>
using namespace std;

class s
{
    public:
    s() { cout << endl << "default s constructor" << endl; }
    ~s() { cout << endl << "default s destructor" << endl; }

};

int main()
{
    vector<s> v(0);
}

Вывод:

конструктор по умолчанию

деструктор по умолчанию

29
задан fredoverflow 27 June 2011 в 10:59
поделиться