std::basic_string

来自cppreference.com
< cpp‎ | string
 
 
 
std::basic_string
 
定义于头文件 <string>
template<

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

> class basic_string;
(1)
namespace pmr {

    template <class CharT, class Traits = std::char_traits<CharT>>
    using basic_string = std::basic_string< CharT, Traits,
                                            std::polymorphic_allocator<CharT>>

}
(2) (C++17 起)

类模板basic_string存储并操作类char对象的序列。该模板既不依赖于字符类型亦不依赖于该类型上的运算本性。运算的定义由Traits模板参数——std::char_traits的一个特化或兼容的特性类提供。

basic_string的元素是连续存储的,即对于一个basic_string s,对于[0, s.size())中任意的n&*(s.begin() + n) == &*s.begin() + n,等价地,指向s[0]的指针可以传递给期待指向CharT[]首元素的指针的函数。

(C++11 起)

std::basic_string满足具分配器容器AllocatorAwareContainer)、顺序容器SequenceContainer连续容器ContiguousContainer (C++17 起)的要求。

标准为常用字符类型提供数种typedef:

定义于头文件 <string>
类型 定义
std::string std::basic_string<char>
std::wstring std::basic_string<wchar_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::u16string (C++17) std::pmr::basic_string<char16_t>
std::pmr::u32string (C++17) std::pmr::basic_string<char32_t>

目录

[编辑] 模板参数

CharT - 字符类型
Traits - 指定在字符类型上操作的特性类
Allocator - 用于分配内部存储的分配器Allocator)类型

[编辑] 成员类型

成员类型 定义
traits_type Traits
value_type Traits::char_type
allocator_type Allocator [edit]
size_type 无符号整型(通常是size_t[edit]
difference_type 有符号整型 (通常是ptrdiff_t) [edit]
reference Allocator::reference (C++11 前)
value_type& (C++11 起) [edit]
const_reference Allocator::const_reference (C++11 前)
const value_type& (C++11 起) [edit]
pointer Allocator::pointer (C++11 前)
std::allocator_traits<Allocator>::pointer (C++11 起) [edit]
const_pointer Allocator::const_pointer (C++11 前)
std::allocator_traits<Allocator>::const_pointer (C++11 起) [edit]
iterator 随机访问迭代器RandomAccessIterator[edit]
const_iterator 随机访问常迭代器[edit]
reverse_iterator std::reverse_iterator<iterator> [edit]
const_reverse_iterator std::reverse_iterator<const_iterator> [edit]

[编辑] 成员函数

构造basic_string
原文:
constructs a basic_string
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
(析构函数)
销毁字符串,解除分配内部存储,若使用它
(公开成员函数)
为字符串赋值
(公开成员函数) [edit]
为字符串赋值
(公开成员函数) [edit]
返回关联的分配器
(公开成员函数) [edit]
元素访问
访问指定位置的字符,带边界检查
(公开成员函数) [edit]
访问指定位置的字符
(公开成员函数) [edit]
(C++11)
访问的第一个字符
原文:
accesses the first character
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
(C++11)
访问的最后一个字符
原文:
accesses the last character
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
返回一个指针,指向一个字符串的第一个字符
原文:
returns a pointer to the first character of a string
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
返回一个不可修改的C风格字符串
原文:
returns a non-modifiable standard C character array version of the string
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
返回到整个字符串的非可修改的basic_string_view
(公开成员函数) [edit]
迭代器
返回指向字符串第一个元素的迭代器
原文:
returns an iterator to the beginning
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]

(C++11)
返回指向字符串尾端的迭代器
原文:
returns an iterator to the end
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
返回一个指向字符串最后一个元素的反向迭代器
原文:
returns a reverse iterator to the beginning
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
返回一个指向字符串前端的反向迭代器
原文:
returns a reverse iterator to the end
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
容量
检查字符串是否为空
原文:
checks whether the string is empty
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
返回字符数量
(公开成员函数) [edit]
返回最大字符数量
原文:
returns the maximum number of characters
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
预留存储空间
原文:
reserves storage
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
返回当前分配的存储空间可容纳的最大字符数量
原文:
returns the number of characters that can be held in currently allocated storage
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
通过释放未使用的内存减少内存使用
原文:
reduces memory usage by freeing unused memory
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
操作
删除全部内容
原文:
clears the contents
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
插入字符
原文:
inserts characters
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
删除字符
(公开成员函数) [edit]
向末尾添加字符
原文:
appends a character to the end
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
(C++11)
删除最后一个字符
原文:
removes the last character
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
向末尾添加字符(串)
原文:
appends characters to the end
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
向末尾添加字符(串)
原文:
appends characters to the end
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
比较两个字符串
原文:
compares two strings
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
替换出现的每一个指定的字符
原文:
replaces every occurrence of specified characters
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
返回子字符串
原文:
returns a substring
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
复制字符
原文:
copies characters
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
改变存储的字符数
原文:
changes the number of characters stored
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
交换字符串的内容
原文:
swaps the contents
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
查找
在字符串中寻找字符(串)
(公开成员函数) [edit]
寻找字符(串)最后一次出现的位置
原文:
find the last occurrence of a substring
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
寻找字符串中任意字符第一次出现的位置
原文:
find first occurrence of characters
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
寻找字符串中任意字符第一次缺失的位置
原文:
find first absence of characters
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
寻找字符串中任意字符最后一次出现的位置
原文:
find last occurrence of characters
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开成员函数) [edit]
寻找字符串中任意字符最后一次缺失的位置
(公开成员函数) [edit]

常量

[静态]
特殊值。确切的含义取决于具体情况。
原文:
special value. The exact meaning depends on the context
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(公开静态成员常量) [edit]

[编辑] 非成员函数

连接两个字符串或者一个字符串和一个字符
(函数模板) [edit]
按字典顺序比较两个字符串
(函数模板) [edit]
特化的std::swap算法
原文:
specializes the std::swap algorithm
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数模板) [edit]
输入/输出
执行字符串的流输入和输出
(函数模板) [edit]
从I/O流读入数据到字符串
(函数模板) [edit]
数值转换
(C++11)
(C++11)
(C++11)
将字符串转换为有符号整数
原文:
converts a string to an signed integer
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
(C++11)
(C++11)
将字符串转换为无符号整数
原文:
converts a string to an unsigned integer
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
(C++11)
(C++11)
(C++11)
将字符串转换为浮点值
原文:
converts a string to an floating point value
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
(C++11)
将整值或浮点值转换成string
(函数) [edit]
将整值或浮点值转换成wstring
(函数) [edit]

[编辑] 字面量

定义于内联命名空间std::literals::string_literals
将字符数组字面量转换成basic_string
(函数) [edit]

[编辑] 帮助类

支持字符串的哈希函数
原文:
hash support for strings
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类模板特化) [edit]