Aber es gibt explizite Vektoren (size_type n); Konstrukteur. In diesem Fall ist dies nicht {} geschweifte Klammer. Was ist mit dieser Aussage passiert?
Uniform Initialisierung Syntax bedeutet, dass, vor allem, diese beiden sind die gleichen:
SomeType objectName(constructor_args);
SomeType objectName{constructor_args};
Curly Klammern auch unter bestimmten Umständen verwendet werden kann, eine initialiser Liste, zu füllen, aber das ist hier nicht der Fall .
Sie rufen tatsächlich den zweiten Konstruktor auf, der die Anzahl der Elemente angibt, mit denen der Vektor beginnen soll.
Die C++ - Initialisierung ist ziemlich komplex, daher werde ich hier nicht näher darauf eingehen, sondern Sie dazu bringen, etwas über die verschiedenen Initialisierungssyntaxen zu lesen. Ihr C++ Buch sollte sie abdecken.
Verwenden Sie bitte die [bessere Referenz] (http://en.cppreference.com/w/cpp/container/vector) bitte. –
In Ihrem Link zeigt es, dass es einen Konstruktor gibt, der mit einem ganzzahligen Argument aufgerufen werden kann. Was ist das Problem? –
Ich lese die Anleitung irgendwo, '{}' ist Initialisierungsliste. Aber in 'Vektor svec {5}; 'Fall, dies ist keine Initialisierungsliste, weil 'Werttyp'' String' ist. Also, wo ist der Konstruktor mit einem Integer-Argument? Es gibt '(ein Ganzzahlargument), das nur den Größentyp bedeutet. Es ist "() Klammer", nicht "{}' –
fasdgoc