Namespaces
Variants

std::hive<T,Allocator>::assign

Von de.cppreference.net

 
 
 
 
void assign( size_type count, const T& value );
(1) (seit C++26)
template< class InputIt >
void assign( InputIt first, InputIt last );
(2) (seit C++26)
void assign( std::initializer_list<T> ilist );
(3) (seit C++11)

Ersetzt den Inhalt des Containers.

1) Ersetzt den Inhalt mit count Kopien des Werts value.
2) Ersetzt den Inhalt durch Kopien derjenigen im Bereich [first, last).
Falls eines der Argumente ein Iterator in *this ist, ist das Verhalten undefiniert. Diese Überladung nimmt nur an der Überladungsauflösung teil, wenn InputIt LegacyInputIterator erfüllt.
3) Ersetzt den Inhalt durch die Elemente aus ilist.


Parameter

count - die neue Größe des Containers
value - der Wert, mit dem die Elemente des Containers initialisiert werden
first, last - das Paar von Iteratoren, das den Quell-Bereich der zu kopierenden Elemente definiert
ilist - std::initializer_list aus dem die Werte kopiert werden

Komplexität

1) Linear in count.
2) Linear im Abstand zwischen first und last.
3) Linear in ilist.size().

Beispiel

Der folgende Code verwendet assign um mehrere Zeichen zu einem std::hive<char> hinzuzufügen:

#include <hive>
#include <iostream>
#include <string>

int main()
{
    std::hive<char> characters;
    
    auto print_hive = [&]()
    {
        for (char c : characters)
            std::cout << c << ' ';
        std::cout << '\n';
    };
    
    characters.assign(5, 'a');
    print_hive();
    
    const std::string extra(6, 'b');
    characters.assign(extra.begin(), extra.end());
    print_hive();
    
    characters.assign({'C', '+', '+', '2', '6'});
    print_hive();
}

Ausgabe:

a a a a a
b b b b b b
C + + 2 6

Siehe auch

weist dem Container einen Wertebereich zu
(öffentliche Memberfunktion)
weist dem Container Werte zu
(öffentliche Memberfunktion)