C++ STL学习(1)

来源:互联网 发布:太平洋官方软件 编辑:程序博客网 时间:2024/06/07 03:24

vector

初始化:
1.直接初始化
如:vector v;
2.指定长度
如:vector v(10);
3.指定长度和初值
如:vector v(10,0);
长度为10,初值为0
4.使用迭代器
如:
int a[] = { 1,2,3,4,5 };
vector v(a,a+5);

成员函数:
assign:
用法一:参数为两个迭代器,将两迭代器之间的元素赋值给vector对象。
用法二:参数一为num,参数二为value。将num个value赋值给vector对象。
at:参数为一个size_type,返回当前位置的引用,几乎等同于[],不过比[]更安全,增加了下标越界检查和异常处理
front:无参数,返回首元素
back:无参数,返回尾元素
begin:无参数,返回指向首元素的迭代器
end:无参数,返回指向尾元素下一个位置的迭代器
rbegin:无参数,返回指向尾元素的反向迭代器
rend:无参数,返回指向首元素前一个位置的反向迭代器
//rbegin的++实际上在向前vector首部走
size:无参数,返回当前容器内元素个数
capacity:无参数,预分配给vector的内存可存储的元素个数
//区别二者
resize:无参数,修改size的值,用法同vector初始化中的2.和3.
reserve:无参数,修改capacity的值
max_size:无参数,返回编译器能申请的最大容器尺寸
clear:无参数,清空容器
empty:无参数,返回一个布尔量,判断容器是否为空
erase:参数为本容器的一个或两个迭代器。若为一个,擦除该迭代器指向的元素。若为两个,擦除两迭代器之间的元素
insert:
用法一:参数一为本容器的迭代器,参数二为value。在迭代器的前一个位置插入值为value的元素,返回指向这个元素的迭代器。
用法二:参数一为本容器的迭代器,参数二为num,参数三为value。在迭代器的前一个位置插入num个值为value的元素。
用法三:参数一为本容器的迭代器,参数二、三也为两个迭代器。在参数一迭代器前插入参数二、三区间内的所有元素。
swap:参数为另一个同类型vector。交换两个容器。
pop_back:无参数,擦除尾元素
push_back:参数为value,将value压入vector尾

一些标准库函数

copy 利用前两个迭代器将区间内的元素复制到以第三个迭代器为起点的位置
reverse_copy 参数同上,执行反向复制
reverse 利用两个迭代器将区间内的元素倒序
fill 利用两个迭代器将区间内的元素用第三个参数val的值替换
fill_n 参数包括 : 一个迭代器,一个计数器以及一个值。该函数从迭代器指向的元素开始,将指定数量的元素设置为给定的值
find 查找两迭代器区间内和参数三val相同的第一个元素,返回一个迭代器。若未找到,返回参数二对应的迭代器
iota 在两个迭代器之间生成以参数三val起始的递增序列
itoa 将整数转字符串,适用于Windows
atoi 将字符串转整数,适用于Windows
sprintf 将整数转字符串,适用于Windows和Linux
for_each 为两个迭代器间的每一个元素调用参数三对应的函数

适配器

back_inserter
尾部插入器
使用:通过调用容器的push_back()成员函数来插入元素
功能:在容器的尾端插入元素
限制:只有提供了push_back()成员函数的容器中
适用:vector deque list
inserter
普通插入器
使用:通过调用insert()成员函数来插入元素,并由用户指定插入位置
功能:在容器的指定位置插入元素
限制:所有STL容器都提供了insert()函数.
适用:所有STL容器
front_inserter
头部插入器
使用:通过调用容器的push_front()成员函数来插入元素
功能:在容器的前端插入元素
限制:只有提供了push_front()成员函数的容器中
适用:deque list

立下一个死亡flag,暑假我能天天写blog!

原创粉丝点击