Namensräume
Varianten
Aktionen

std::forward_list<T,Allocator>::resize

Von cppreference.com
 
 
 
 
void resize( size_type count );
(1) (seit C++11)
void resize( size_type count, const value_type& value );
(2) (seit C++11)

Ordnet die Containergröße auf count Elemente neu zu. Wenn count == std::distance(begin(), end()) (d. h. wenn count der aktuellen Größe entspricht), wird nichts unternommen.

Wenn die aktuelle Größe größer als count ist, wird der Container auf seine ersten count Elemente reduziert.

Wenn die aktuelle Größe kleiner als count ist, dann

1) Werden zusätzliche standardmäßig eingefügte Elemente angehängt.
2) Werden zusätzliche Kopien von value angehängt.

Inhalt

[editieren] Parameter

zählt - neue Größe des Containers
value - der Wert, mit dem die neuen Elemente initialisiert werden sollen
Typanforderungen
-
T muss die Anforderungen von DefaultInsertable erfüllen, um Überladung (1) verwenden zu können.
-
T muss die Anforderungen von CopyInsertable erfüllen, um Überladung (2) verwenden zu können.

[editieren] Komplexität

Linear in der Differenz zwischen der aktuellen Größe und count. Zusätzliche Komplexität kann durch Listen-Traversal entstehen, um das erste zu löschende Element bzw. die Einfügeposition zu erreichen.

Anmerkungen

Wenn die Wertinitialisierung in Überladung (1) unerwünscht ist, zum Beispiel, wenn die Elemente von einem nicht-Klassen-Typ sind und kein Nullsetzen benötigt wird, kann dies durch die Bereitstellung eines benutzerdefinierten Allocator::construct vermieden werden.

[editieren] Beispiel

#include <forward_list>
#include <iostream>
 
void print(auto rem, const std::forward_list<int>& c)
{
    for (std::cout << rem; const int el : c)
        std::cout << el << ' ';
    std::cout << '\n';
}
 
int main()
{
    std::forward_list<int> c = {1, 2, 3};
    print("The forward_list holds: ", c);
 
    c.resize(5);
    print("After resize up to 5: ", c);
 
    c.resize(2);
    print("After resize down to 2: ", c);
 
    c.resize(6, 4);
    print("After resize up to 6 (initializer = 4): ", c);
}

Ausgabe

The forward_list holds: 1 2 3
After resize up to 5: 1 2 3 0 0
After resize down to 2: 1 2
After resize up to 6 (initializer = 4): 1 2 4 4 4 4


[editieren] Siehe auch

Gibt die maximal mögliche Anzahl von Elementen zurück
(public member function) [edit]
prüft, ob der Container leer ist
(public member function) [edit]