std :: Vektorgröße?

7

Programm:

%Vor%

wenn mit

kompiliert %Vor%

erzeugt einen Fehler:

%Vor%

und auf Ссылка wird geschrieben

%Vor%

Ich habe erwartet, dass der Konstruktor verwendet wird.

Kann jemand erklären?

    
Predrag 03.10.2012, 20:17
quelle

1 Antwort

19

Sie rufen nicht den Konstruktor auf, der den Vektor auf eine anfängliche Größe setzt.

%Vor%

Das obige erzeugt ein vector mit einem einzelnen int Element mit dem Wert size . Sie rufen diesen Konstruktor auf:

%Vor%

Die braced-initializer-Liste wird als std::initializer_list<size_type> abgeleitet und dann muss eine einschränkende Konvertierung durchgeführt werden, da vector selbst int s enthält.

Um die anfängliche Größe des Vektors festzulegen, verwenden Sie:

%Vor%

Auch der von Ihnen aufgelistete vector -Konstruktor existiert nicht mehr, er wurde in C ++ 11 entfernt und durch die folgenden zwei Konstruktoren ersetzt:

%Vor%

cppreference.com ist eine viel bessere Referenz im Vergleich zu cplusplus.com.

    
Praetorian 03.10.2012, 20:39
quelle