3)定义了字符 / 字符串操作的包装界面,以便通用算法的调用??
assign(a, b) 定义将 b 字符赋值给 a 字符的过程,实现 a.operator = 的行为??
eq(a, b) 定义 a 字符和 b 字符的相等关系,实现 a.operator == 的行为??
lt(a, b) 定义 a 小于 b 的关系,实现 a.operator < 的行为??
compare(a_ptr, b_ptr, cnt) 定义两组字符串的比较,返回 int 类型,实现类似 memcmp 的行为??
length(ptr) 定义取字符串长度,实现类似 strlen 的行为??
copy(a_ptr, b_ptr, cnt) 定义两组字符串的复制,实现类似 memcpy 的行为??
move(a_ptr, b_ptr, cnt) 定义两组字符串的不重叠复制,实现类似 memmove 的行为??
assign(ptr, cnt, ch) 定义了填充字符串的过程,实现类似 memset 的行为??
to_int_type(ch) 定义了 char_type 到 int_type 整型的转换过程??
to_char_type(n) 定义了 int_type 到 char_type 字符型的转换过程??
eq_int_type(a, b) 定义两个和当前 char_type 类型对应的 int_type 的相等关系??
eof() 定义字符串结尾符,使用整型表示??
not_eof(n) 定义非字符串结尾符,若输入结尾符,则返回 1,其他输入返回原值,即总是不返回 eof()??
4)int_type 类型应是当前字符类型的整型编码??
??
二、std::string 并不是序列容器,没有 front() 和 back() 界面用于取出前端和尾端的元素,使用 std::string::operator [] 并传递 streampos 类型取得特定元素,如 std::string::size() - 1 作为索引取得最后一个字符??
三、basic_string 支持的初始化??
1)默认初始化??
2)分配器??
3)复制构造??
4)局部复制 [_Roff, _Roff + _Count)??
5)局部复制 + 分配器??
6)C 字符串 [_Ptr, <null>)??
7)C 字符串 + _Count [_Ptr, _Ptr + _Count)??
8)C 字符串 + 分配器??
9)C 字符串 + _Count + 分配器 [_Ptr, _Ptr + _Count)
10)_Count * _Ch??
11)_Count * _Ch + 分配器??
12)迭代器 [_ItF, _ItL)??
13)迭代器 + 分配器??
字符到串不能初始化,但支持 operator = 赋值和 operator += 累加赋值运算。c strchr()函数的结果??
四、字符串的区间有效性??
对串的索引访问在超过字符串的有效区间时,因为串的在实现上对内置的字符缓冲区执行下标访问,所以不会导致异常,但是将得到不可预知的结果,通常是不可用的。
将其他字符串作为右值输入时,对该串取出计数大于串大小时按串大小计算。??
std::basic_string::size_type 的实际类型为 size_t,在 Visual C++ 7.1 中实现为 unsigned,std::basic_string::npos 被静态设定为??
(basic_string<_Elem, _Traits, _Alloc>::size_type)(-1);??
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-74348-7.html
挺好的
但是都是顶级美食