std::forward_list::insert_after
De cppreference.com
< cpp | container | forward list
iterator insert_after( const_iterator pos, const T& value ); |
(1) | (desde C++11) |
iterator insert_after( const_iterator pos, T&& value ); |
(2) | (desde C++11) |
iterator insert_after( const_iterator pos, size_type count, const T& value ); |
(3) | (desde C++11) |
template< class InputIt > iterator insert_after( const_iterator pos, InputIt first, InputIt last ); |
(4) | (desde C++11) |
iterator insert_after( const_iterator pos, std::initializer_list<T> ilist ); |
(5) | (desde C++11) |
Inserta elementos en el contenedor después de la posición especificada.
1-2) Inserta
value
después del elemento al que apunta pos
.3) Inserta
count
copias del valor value
después del elemento al que apunta pos
.4) Inserta elements del rango
[first, last)
después del elemento al que apunta pos
.
El comportamiento no está definido si first
y last
son iteradores en *this. 5) Inserta elements de la lista de inicializadores
ilist
.No se invalidan ni referencias ni iteradores.
Contenido |
[editar] Parámetros
pos | - | Iterador después del cual se insertará el contenido. |
value | - | Valor del elemento a insertar. |
count | - | Número de copias a insertar. |
first, last | - | El rango de elementos a insertar. |
ilist | - | Lista de inicializadores de la cual insertar. |
Requisitos de tipo | ||
-InputIt debe satisfacer los requisitos de InputIterator.
|
[editar] Valor de retorno
1-2) Iterador al elemento insertado.
3) Iterador al último elemento insertado, o
pos
si count==0.4) Iterador al último elemento insertado, o
pos
si first==last.5) Iterador al último elemento insertado, o
pos
si ilist
está vacío.[editar] Excepciones
Si se lanza una excepción durante insert_after
no hay efectos (garantía de excepción fuerte).
[editar] Complejidad
1-2) Constante.
3) Lineal en count.
4) Lineal en std::distance(first, last).
5) Lineal en ilist.size().
[editar] Ejemplo
Ejecuta este código
#include <forward_list> #include <string> #include <iostream> #include <vector> template<typename T> std::ostream& operator<<(std::ostream& s, const std::forward_list<T>& v) { s.put('['); char comma[3] = {'\0', ' ', '\0'}; for (const auto& e : v) { s << comma << e; comma[0] = ','; } return s << ']'; } int main() { std::forward_list<std::string> words {"the", "frogurt", "is", "also", "cursed"}; std::cout << "words: " << words << '\n'; // insert_after (2) auto beginIt = words.begin(); words.insert_after(beginIt, "strawberry"); std::cout << "words: " << words << '\n'; // insert_after (3) auto anotherIt = beginIt; ++anotherIt; anotherIt = words.insert_after(anotherIt, 2, "strawberry"); std::cout << "words: " << words << '\n'; // insert_after (4) std::vector<std::string> V = { "apple", "banana", "cherry"}; anotherIt = words.insert_after(anotherIt, V.begin(), V.end()); std::cout << "words: " << words << '\n'; // insert_after (5) words.insert_after(anotherIt, {"jackfruit", "kiwifruit", "lime", "mango"}); std::cout << "words: " << words << '\n'; }
Salida:
words: [the, frogurt, is, also, cursed] words: [the, strawberry, frogurt, is, also, cursed] words: [the, strawberry, strawberry, strawberry, frogurt, is, also, cursed] words: [the, strawberry, strawberry, strawberry, apple, banana, cherry, frogurt, is, also, cursed] words: [the, strawberry, strawberry, strawberry, apple, banana, cherry, jackfruit, kiwifruit, lime, mango, frogurt, is, also, cursed]
[editar] Véase también
(C++11) |
Construye elementos en el sitio después de un elemento. (función miembro pública) |
(C++11) |
Inserta un elemento al principio del contenedor. (función miembro pública) |