Espacios de nombres
Variantes
Acciones

std::stack<T,Container>::swap

De cppreference.com
< cpp‎ | container‎ | stack
 
 
 
 
void swap( stack& other )noexcept(/* véase más abajo */);
(desde C++11)

Intercambia el contenido del adaptador de contenedor con el de other. Efectivamente llama a usingstd::swap; swap(c, other.c);

Contenido

[editar]Parámetros

other - El adaptador de contenedor con el cual intercambiar el contenido.

[editar]Valor de retorno

(Ninguno)

[editar]Excepciones

Especificación noexcept:   (desde C++11)
noexcept(noexcept(swap(c, other.c)))

En la expresión anterior, el identificador swap se busca de la misma manera que el usado por el rasgo de tipo de C++17 std::is_nothrow_swappable.

(desde C++11)
(hasta C++17)
Especificación noexcept:   (desde C++11)
noexcept(std::is_nothrow_swappable_v<Container>)
(desde C++17)

[editar]Complejidad

La misma que el contenedor subyacente (habitualmente constante).

[editar]Notas

Algunas implementaciones (p. ej., libc++) proporcionan la función miembro swap como una extensión para modalidades anteriores a C++11.

[editar]Ejemplo

#include <iostream>#include <stack>#include <string>#include <vector>   template<typename Pila>void imprimir(Pila pila /* pasar por valor */, int id){std::cout<<"s"<< id <<" ["<< pila.size()<<"]: ";for(;!pila.empty(); pila.pop())std::cout<< pila.top()<<' ';std::cout<<(id >1?"\n\n":"\n");}   int main(){std::vector<std::string> v1{"1","2","3","4"}, v2{"Ɐ","B","Ɔ","D","Ǝ"};   std::stack s1{std::move(v1)};std::stack s2{std::move(v2)};   imprimir(s1, 1); imprimir(s2, 2);   s1.swap(s2);   imprimir(s1, 1); imprimir(s2, 2);}

Salida:

s1 [4]: 4 3 2 1 s2 [5]: Ǝ D Ɔ B Ɐ   s1 [5]: Ǝ D Ɔ B Ɐ s2 [4]: 4 3 2 1

[editar]Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
LWG 2456 C++11 La especificación noexcept está mal formada. Se hizo funcionar.

[editar]Véase también

Especializa el algoritmo std::swap.
(plantilla de función)[editar]
close