stl容器与算法浅析

stl的一些容器和算法

所有的头文件:

在这里插入图片描述

for_each

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

vector容器

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

初始化或者拷贝构造

在这里插入图片描述
新建一个v1,把arr的东西复制进去。
在这里插入图片描述
assign函数效果等同于上边的数组初始化方式,具体用法为vectorv;vectorv1;v1.assign(v)把v的所有元素赋值给v1

插入和删除 非常重要

在这里插入图片描述

其他操作

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

遍历

在这里插入图片描述
遍历需要通过vector自带的迭代器来遍历,不能直接用int类型指针。

string 容器

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

初始化方式:

在这里插入图片描述

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

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

string容器的重载运算符操作(用于插入)
在这里插入图片描述
比如:string s1,s2,s3;
s1+=s2;
s1.append(s2);
s3 = s2 + s1;
上述写法均可。

查找操作

从前往后:find
从后往前;rfind
在这里插入图片描述

替换操作

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

比较操作

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

返回字符串中的字串

在这里插入图片描述

插入和删除操作

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值