std::swap(std::basic_string)
来自 cppreference.com
< cpp | string | basic string
定义在头文件 <string> 中 |
||
template< class CharT, class Traits, class Alloc > void swap( std::basic_string<CharT, Traits, Alloc>& lhs, |
(直到 C++17) | |
template< class CharT, class Traits, class Alloc > void swap( std::basic_string<CharT, Traits, Alloc>& lhs, |
(从 C++17 起) (从 C++20 起为 constexpr) |
|
将 std::swap 算法专门用于 std::basic_string。交换 lhs 和 rhs 的内容。
等效于 lhs.swap(rhs).
内容 |
[编辑] 参数
lhs, rhs | - | 要交换内容的字符串 |
[编辑] 返回值
(无)
[编辑] 复杂度
常数。
异常noexcept 规范:
noexcept(noexcept(lhs.swap(rhs))) |
(从 C++17 起) |
[编辑] 示例
运行此代码
#include <iostream> #include <string> int main() { std::string a = "AAA"; std::string b = "BBBB"; std::cout << "Before swap:\n" "a = " << a << "\n" "b = " << b << "\n\n"; std::swap(a, b); std::cout << "After swap:\n" "a = " << a << "\n" "b = " << b << '\n'; }
输出
Before swap: a = AAA b = BBBB After swap: a = BBBB b = AAA
[编辑] 缺陷报告
以下更改行为的缺陷报告被追溯应用于以前发布的 C++ 标准。
DR | 应用于 | 发布的行为 | 正确行为 |
---|---|---|---|
LWG 2064 | C++11 | 非成员 swap 为 noexcept 且与成员 swap 不一致 |
noexcept 已删除 |
[编辑] 另请参阅
交换内容 (公共成员函数) |