std::vector::assign
Z cppreference.com
void assign( size_type count, const T& value ); |
(1) | |
template< class InputIt > void assign( InputIt first, InputIt last ); |
(2) | |
void assign( std::initializer_list<T> ilist ); |
(3) | (od C++11) |
Zastępuje zawartość kontenera.
1) Zastępuje zawartość kontenera count kopiami wartości value
2) Zastępuje zawartość kontenera kopią zawartości przedziału [first, last).
To przeciążenie ma identyczne działanie jak przeciążenie (1), jeśli InputIt jest typem całkowitym. | (do C++11) |
To przeciążenie bierze udział w rozwiązywaniu przeciążeń(ang) tylko jeśli InputIt spełnia wymogi InputIterator. | (od C++11) |
3) Zastępuje zawartość kontenera zawartością listy inicjalizacyjnej ilist.
Wszystkie iteratory, wskaźniki i referencje do elementów kontenera stają się unieważnione. Iterator past-the-end również zostaje uniważniony.
Spis treści |
[edytuj] Parametry
count | - | nowy rozmiar kontenera |
value | - | wartość, którą zostaną zainicjalizowane elementy kontenera |
first, last | - | przedział, z którego zostaną skopiowane elementy |
ilist | - | lista inicjalizacyjna, z której zostaną skopiowane wartości |
[edytuj] Złożoność
1) Liniowa względem count
2) Liniowa względem odległości pomiędzy first a last
3) Liniowa względem ilist.size()
[edytuj] Przykład
Poniższy kod wykorzystuje assign, aby dodać kilka znaków do std::vector<char>:
#include <vector> #include <iostream> int main() { std::vector<char> characters; characters.assign(5, 'a'); for (char c : characters) { std::cout << c << '\n'; } return 0; }
Wynik:
a a a a a
[edytuj] Zobacz także
Konstruuje vector (publiczna metoda) |