STL介绍
什么是STL
STL的全拼是standard template libaray(标准模板库),这是C++标准库中的重要组成,是一个数据结构与算法的基本框架
STL其实可以看作一个标准,他对各种数据结构、算法等内容做了功能上的限定,因此不同的人在实现相同的部分可能会有不同的实现方式,也就产生了不同的STL版本
SGI版本的STL的可阅读性非常高,在学习过程中主要参考这个版本
string介绍
string类的介绍
string类是C++中的一个容器,对应的是C语言的字符串,而C语言对字符串的处理是使用字符数组的方法,相对来说比较繁琐和相对不安全,由此在C++引出了string类
STL中的string类
string的构造函数
| 函数名称 |
功能 |
| string() |
构造空的string对象 |
| string(const char* s) |
用字符串构造string对象 |
| string(size_t n, char c) |
n个字符c构造string对象 |
| string(const string& s) |
拷贝构造 |
string的容量操作
| 函数名称 |
功能 |
| size() |
字符串有效长度 |
| length() |
字符串有效长度 |
| capacity() |
空间大小 |
| empty() |
检测是否为空 |
| clear() |
清空 |
| reserve() |
预留空间 |
| resize() |
保留字符串 |
string的访问
| 函数名称 |
功能 |
| operator[] |
返回pos位置的字符 |
| begin、end |
begin获取第一个字符的迭代器、end获取最后一个字符下一个位置的迭代器 |
| rbegin、rend |
与begin、end相反 |
| 范围for |
利用迭代器进行遍历 |
string的增删查改
| 函数名称 |
功能 |
| push_back |
尾插 |
| append |
追加 |
| operator+= |
追加 |
| c_str |
转换为C语言中的字符串 |
| find |
从pos位置往后找 |
| rfind |
从pos位置往前找 |
| substr |
从pos位置开始截取 |
string的非成员函数
| 函数名称 |
功能 |
| operator+ |
加和,传值返回效率低 |
| operator>> |
输入 |
| operator<< |
输出 |
| getline |
获取一行字符 |
| relational operators |
比较大小 |