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.
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 |
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()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
Zobacz także
| Konstruuje vector (publiczna metoda) |