在C语言中,字符串是以'\0'结束的,同样的,C语言我也为我们提供了str系列的库函数,但是这些库函数是和字符串分开来的,不符合我们OOP的思想,而且底层空间需要用户自己来管理,稍不留神就会越界访问。
C++标准库中的string类
1. string是表示字符串的字符串类
2. 该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操作。比特科技
3. string在底层实际是:basic_string模板类的别名,typedef basic_string<char, char_traits, allocator>
string;
4. 不能操作多字节或者变长字符的序列。
string类中resize和reserve的区别
resize是改变有效字符的个数
而reserve是改变预留空间的大小
就好比是你饭量是吃三碗饭,然后你吃了三碗饭,resize(2)后,你的肚子里只有两碗饭,一碗饭没了。
而reverse(5)就相当于把你的饭量提升到了5碗,但是你的肚子里只有三碗饭。
string类的浅拷贝和深拷贝
在string的实现中,有着一个重要的问题,那就是深浅拷贝的问题,