std::swap(std::stack)

来自cppreference.com
< cpp‎ | container‎ | stack

在标头 <stack> 定义
template< class T, class Container >

void swap( std::stack<T, Container>& lhs,

           std::stack<T, Container>& rhs );
(C++11 起)
(C++17 前)
template< class T, class Container >

void swap( std::stack<T, Container>& lhs,

           std::stack<T, Container>& rhs ) noexcept(/* see below */);
(C++17 起)

std::stack 特化 std::swap 算法。交换 lhsrhs 的内容。调用 lhs.swap(rhs)

此重载只有在 std::is_swappable_v<Container>true 时才会参与重载决议。

(C++17 起)

参数

lhs, rhs - 要交换内容的容器

返回值

(无)

复杂度

与交换底层容器相同。

异常

noexcept 说明:  
noexcept(noexcept(lhs.swap(rhs)))
(C++17 起)

注解

尽管 std::swap 对容器适配器的重载是在 C++11 引入的, C++98 中已能用 std::swap 交换容器适配器。这种 std::swap 调用通常拥有线性时间复杂度,但实现可能提供更好的复杂度。

示例

参阅

(C++11)
交换内容
(公开成员函数)