C++学习笔记
算法组
STL将算法库分成4组:
- 非修改式序列操作;
- 修改时序列操作;
- 排序和相关操作;
- 通用数字运算
前三组在头文件algorithm
中描述,第四组是专用于数值数据的,有自己的头文件,称为numeric
.
函数和容器方法
有时候可以选择使用STL方法或者STL函数,但是STL方法更适合于特定的容器,其次,作为成员函数,它可以使用模板类的内存管理工具,从而在需要时调整容器的长度。
举个例子
如果要删除链表中的某个特定值的所有实例。以la是一个list对象,则调用该函数的代码如下:la.remove(4);
调用该方法后,链表中所有值为4的元素都将被删除,同时链表的长度将被自动调整。
还可以使用一个名为remove()的STL算法,它的调用方法如下remove{la.begin(), la.end(), 4};
string类
string类将string::npos
定义为字符串的最大长度,通常为unsigned int
的最大值。以下是string类的构造函数,表格中使用缩写NBTS(null-terminated string)来表示以空字符结束的字符串–传统的C字符串。
string类的构造函数:
构造函数 | 描述 |
---|---|
string(const char* s) | 将string对象初始化为s指向的NBTS |
string(size_type n, char c) | 创建一个包含n个元素的string对象,其中每个元素都被初始化为字符c |
string(const string & str) | 将一个string对象初始化为string对象str(复制构造函数) |
string() | 创建一个默认的string对象,长度为0(默认构造函数) |
string(const char* s, size_type n) | 将string对象初始化为s指向的NBTS的前n个字符,即使超过了NBTS结尾 |