stl的一些容器和算法

所有的头文件:

stl容器与算法浅析

for_each

需要#include
接口:for_each(begin,end,func)
用法:相当于一个for循环,从begin开始 到end结束,执行函数。注意,此时func的参数应该为和begin和end一样的类型。

vector容器

动态规划数组,如果插入元素之后的vector的size不够 c++在内存中重新规划新的更大块内存将原来的vector元素完全复制后插入新的元素。

初始化或者拷贝构造

stl容器与算法浅析
新建一个v1,把arr的东西复制进去。
stl容器与算法浅析
assign函数效果等同于上边的数组初始化方式,具体用法为vectorv;vectorv1;v1.assign(v)把v的所有元素赋值给v1

插入和删除 非常重要

stl容器与算法浅析

其他操作

empty:空返回true 非空返回false
resize(new_size):改变尺寸,多退少补0.
resize(new_size,elem):多的尺寸用elem元素来填充
size():返回元素个数
capacity():返回元素容量 元素容量一半要大元素个数很多,否则每次pushback数据的时候都要更改size非常麻烦。
front()(返回第一个元素)
back()返回最后一个元素
a.reserve(int n)设置a的预留空间为n个元素。

遍历

stl容器与算法浅析
遍历需要通过vector自带的迭代器来遍历,不能直接用int类型指针。

string 容器

里边只能放char*类型的元素。

初始化方式:

stl容器与算法浅析

访问(取值)操作 :重载运算符[]或者运用at函数:

string tein;
tein.at(i);找到其中第i个元素
相当于tein[i];
区别,重载以后的[]中方的位置是不能越界的,而()会抛一个异常out_of_range。

string容器的重载运算符操作(用于插入)
stl容器与算法浅析
比如:string s1,s2,s3;
s1+=s2;
s1.append(s2);
s3 = s2 + s1;
上述写法均可。

查找操作

从前往后:find
从后往前;rfind
stl容器与算法浅析

替换操作

s.replace(首位置,末位置,“替换成的字符”)

比较操作

s1.compare(s2);
若s1比s2大,返回1;小,返回-1;相等返回0.
这里的大小关系不是占用内存的大小关系。

返回字符串中的字串

stl容器与算法浅析

插入和删除操作

stl容器与算法浅析

相关文章: