新的一年了,祝各位新年好,祝大家在新的一年里心想事成,万事如意,不脱发 。
同时也为武汉祈福,向所有拼命在一线工作的医务工作者致敬。
进入正题,其实很早就像写一些有关于数据结构的文章了,但一直没时间也没精力去做,趁着过年,就随便写写吧(反正也没人看)。
C++ STL意思是标准模板库,是泛型编程的一种。所谓泛型编程关注的是算法,而非数据。
字符串
字符串实质是以null字符'\0'
终止的一维字符数组。而在STL编程中,字符串通常是指字符串类
字符串类
在STL中只有一个字符串类,即basic_string,string类有六个构造函数。
string类支持cin和getline()两种输入方式,格式为:
string stuff;
cin >> stuff;
getline(cin, stuff);
其中string stuff
为创建string类的对象stuff。
auto_ptr智能指针
auto_ptr类主要用于管理动态内存分配。
要使用auto_ptr对象,必须包含头文件<memory>
string成员函数
下表是string类所有的成员函数及它们的功能。
函数名称 | 功能 |
---|---|
构造函数 | 产生或复制字符串 |
析构函数 | 销毁字符串 |
=,assign | 赋新值 |
Swap | 交换两个字符串的内容 |
+=,append(),push_back() | 添加字符 |
insert() | 插入字符 |
erase() | 删除字符 |
clear() | 移除全部字符 |
resize() | 改变字符数量 |
replace() | 替换字符 |
+ | 串联字符串 |
==,!=,<,<=,>,>=,compare() | 比较字符串内容 |
size(),length() | 返回字符串长度 |
max_size() | 返回字符串最大允许个数 |
empty() | 查询字符串是否为空 |
capacity() | 返回重新分配之前的字符容量 |
reserve() | 保留内存以储存一定数量的字符 |
[],at() | 操作单一字符 |
>>,getline() | 从stream中读取某值 |
<< | 将值写入stream |
copy() | 将内容复制为一个C-string |
c_str() | 将内容以C-string的形式返回 |
data() | 将内容以字符数组形式返回 |
substr() | 返回子字符串 |
find() | 搜寻某子字符串或字符 |
begin(),end() | 提供正向迭代器支持 |
rbegin(),rend() | 提供反向迭代器支持 |
get_allocator() | 返回配置器 |
有关于这些函数和智能指针的相关用法,我会在后面的文章中以实例来详细说明,学不动了,溜了…