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 | 比较大小 |