Boost C++ 库

...世界上最受推崇、设计精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ Coding Standards

string::swap - Boost C++ 函数库

string::swap

交换内容。

提要

void
swap(
    string& other);

描述

交换此字符串的内容与另一个字符串的内容。各自的 boost::container::pmr::memory_resource 对象的所有权不被转移。

  • 如果 &other == this,则不执行任何操作。否则,

  • 如果 *other.storage() == *this->storage(),则以恒定时间交换底层内存的所有权,不会抛出异常。所有迭代器和引用保持有效。否则,

  • 通过复制逻辑上交换内容,这可能抛出异常。在这种情况下,所有迭代器和引用都会失效。

复杂度

常数时间或与 size() + other.size() 线性相关。

异常安全性

强保证。调用 memory_resource::allocate 可能会抛出异常。