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:
Diesen Code ausführen
#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) |