std::basic_string_C++中文网

    class CharT,
    class Traits = std::char_traits<CharT>,
    class Allocator = std::allocator<CharT>

> class basic_string;

类模板 basic_string 存储并操纵作为非数组平凡标准布局类型的仿 char 对象序列。该类既不依赖字符类型,亦不依赖该类型上的原生操作。操作的定义通过 Traits 模板形参—— std::char_traits 的特化或兼容特性类提供。 Traits::char_typeCharT 必须指名同一类型;否则程序为病式。

basic_string 是相继存储的,即对于 basic_string s ,对任何 [0, s.size()) 中的 n 有 &*(s.begin() + n) == &*s.begin() + n ,或等价地,指向 s[0] 的指针能传递给期待指向空终止 (C++11 起) CharT[] 数组首元素指针的函数。

定义于头文件 <string>

  类型 定义 std::string std::basic_string<char> std::wstring std::basic_string<wchar_t> std::u8string (C++20) std::basic_string<char8_t> std::u16string (C++11) std::basic_string<char16_t> std::u32string (C++11) std::basic_string<char32_t> std::pmr::string (C++17) std::pmr::basic_string<char> std::pmr::wstring (C++17) std::pmr::basic_string<wchar_t> std::pmr::u8string (C++20) std::pmr::basic_string<char8_t> std::pmr::u16string (C++17) std::pmr::basic_string<char16_t> std::pmr::u32string (C++17) std::pmr::basic_string<char32_t>