行业知识
【C++精华铺】9.STL string
���录
1. string类的优势
2. string类的常用接口
2.1 常用构造
1. 空串构造:string();
2. C串构造:string(const char* s);
3. 拷贝构造:string(const string& str);
4. 字符填充构造:string(size_t n, char c);
5. 迭代器构造:string(InputIterator first, InputIterator last);
2.2 string容量操作
1. size_t size(),size_t length()
2. size_t capacity() const
3. bool empty() const
4. void clear()
5. void reserve(size_t n = 0)
6. void resize(size_t n), void resize(size_t char c)
2.3 类对象的访问
1. char& operator[](size_t pos),const char& operator[](size_t pos) const
2. begin()、end()
3. rbegin()、rend()
2.4 string对象处理函数
1. push_back()
2. append()
3. operator+=
4. c_str()
5. insert()
6. erase()
7. find()、rfind()
8. substr()
9. getline()
1. string类的优势
STL(Standard Template Library)库中的string类是一个字符串类,它提供了管理字符串的各种方法和功能。它是一个可变长度的字符序列,可以自动调整自身大小以适应字符串的长度变化。
在之前我们操作字符串都是通过自己去实现相关的函数来进行操作,而且稍不留神就会内存泄漏,在C++中我们更倾向于使用string类来完成和字符串相关的操作。
使用string类相比于使用C语言的字符串有以下优点:
-
更加安全:C语言的字符串没有自带长度信息,容易造成内存越界等安全问题。而string类包含有字符串长度信息,能够避免这类问题。
-
更加方便:C语言中处理字符串需要使用一系列函数,如strlen、strcmp、strcat等等,使用起来比较繁琐。而string类提供了一系列方法,如length、compare、append等等,使用起来更加直观方便。
-
更加灵活:string类可以动态地改变字符串的长度,而C语言的字符串长度通常是固定的。
-
更加高效:string类内部实现了很多优化,如字符串复制采用了引用计数和写时复制等技术,因此性能相对于C语言的字符串更高。
2. string类的常用接口
2.1 常用构造
C++98中支持7种构造函数 ,如下:
- default (1) string();
- copy(2) string(const string& str);
- substring(3) string(const string& str, size_t pos, size_t len = npos);
- from c - string(4) string(const char* s);
- from sequence(5) string(const char* s, size_t n);
- fill(6) string(size_t n, char c);
- range(7) template string(InputIterator first, InputIterator last);
但是我们只对其中的五个进行讲解:
1. 空串构造:string();
这个构造函数会构造一个空字符串,长度为0个字符,但是容量不一定为零,比如在vs下空string对象的容量是15,不同环境可能有所不同,主要为了避免频繁的扩容操作。
#include#includeusing namespace std;int main(){string s1; //创建一个空字符串cout
上一篇:电视主机路由器如何连接
下一篇:苏州服务器脱机了怎么恢复?