Как установить параметр по умолчанию для вектора <string>для использования в конструкторе по умолчанию в классе? - PullRequest
14 голосов
/ 06 декабря 2009

Например, класс с именем Table, конструктор которого: Table(string name="", vector <string> mods);

Как бы я инициализировал вектор как пустой?

Edit: Забыл упомянуть, что это был C ++.

Ответы [ 2 ]

21 голосов
/ 06 декабря 2009
Table(string name="", vector <string> mods);

если вы хотите, чтобы вектор был пустым внутри конструктора, тогда

mods.clear();

или

mods.swap(vector<string>());

Если вы хотите использовать в качестве параметра по умолчанию:

 Table(string name="", vector<string> mods = vector<string>());

Как и любой другой параметр по умолчанию.

10 голосов
/ 02 мая 2014

Чтобы добавить к другому ответу: Если вы используете c ++ 11, вы можете использовать универсальный синтаксис инициализации, чтобы сократить объявление параметров по умолчанию для вектора до следующего:

Table(string name="", vector<string> mods={});
...