Przestrzenie nazw
Warianty
Działania

std::vector::assign

Z cppreference.com
< cpp‎ | container‎ | vector
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) [edit]