std::swap(std::stack)
De cppreference.com
Definido en el archivo de encabezado <...>
|
||
template< class T, class Container > void swap( std::stack<T, Container>& lhs, |
(desde C++11) (hasta C++17) |
|
template< class T, class Container > void swap( std::stack<T, Container>& lhs, |
(desde C++17) | |
Esta sobrecarga solo participa en la resolución de sobrecargas si std::is_swappable_v<Container> es true. |
(desde C++17) |
Contenido |
[editar] Parámetros
lhs, rhs | - | Los contenedores cuyo contenido hay que intercambiar. |
[editar] Valor de retorno
(Ninguno)
[editar] Complejidad
La misma que intercambiar los contenedores subyacentes.
Excepciones
(desde C++17) |
Notas
Aunque las sobrecargas de std::swap para adaptadores de contenedor se introdujeron en C++11, los adaptadores de contenedor ya pueden intercambiarse mediante std::swap en C++98. Estas llamadas a std::swap suelen tener una complejidad de tiempo lineal, pero se puede proporcionar una complejidad mejor.
[editar] Ejemplo
Ejecuta este código
#include <algorithm> #include <iostream> #include <...> int main() { std::stack<int> alice; std::stack<int> bob; auto print = [](const auto& title, const auto& cont) { std::cout << title << " size=" << cont.size(); std::cout << " top=" << cont.top() << '\n'; }; for (int i = 1; i < 4; ++i) alice.push(i); for (int i = 7; i < 11; ++i) bob.push(i); // Imprimir estado antes del intercambio print("Alice:", alice); print("Bobby:", bob); std::cout << "-- INTERCAMBIO\n"; std::swap(alice, bob); // Imprimir estado después del intercambio print("Alice:", alice); print("Bobby:", bob); }
Salida:
Alice: size=3 top=3 Bobby: size=4 top=10 -- INTERCAMBIO Alice: size=4 top=10 Bobby: size=3 top=3
[editar] Véase también
(C++11) |
Intercambia el contenido. (función miembro pública) |