std::swap(std::priority_queue)
De cppreference.com
< cpp | container | priority queue
Definido en el archivo de encabezado <queue> | ||
template<class T, class Container, class Compare > void swap(std::priority_queue<T, Container, Compare>& lhs, | (desde C++11) (hasta C++17) | |
template<class T, class Container, class Compare > void swap(std::priority_queue<T, Container, Compare>& lhs, | (desde C++17) | |
Esta sobrecarga solo participa en la resolución de sobrecargas si std::is_swappable_v<Container> y std::is_swappable_v<Compare> son ambos 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 <queue> int main(){std::priority_queue<int> alice;std::priority_queue<int> bob; auto print =[](constauto& title, constauto& 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) |