栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

STL插入迭代器之copy函数、back

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

STL插入迭代器之copy函数、back

在C++中,STL算法(algorithms)接口提供了 Copy、reverse等函数方便用户对数据进行操作;

Gogogogo

1、 Reverse函数
首先,该函数存在于algorithm.h头文件中,使用该函数时务必包含该h文件
reverse函数功能是将字符串、数组、容器等中的数据元素进行反转。
Notice: 整个操作区间是[first,last),—>也符合C++的编程习惯,基本都是左闭右开。

reverse函数无返回值

string a = "Reverse";
reverse(a.begin(), a.end());

2、Copy函数

该函数提供了数据的复制功能,相比利用for循环逐一复制,效率更快。

如果用户需要将数据复制到容器前端,在保证不溢出的前提下,使用copy函数
若用户需要将数据复制到容器的后端,则使用back_inserter()函数,此时超出size的话,会默认申请空间。
copy

vector src = { 0, 1, 2, 3, 4 };
vector dst(8, -1);
std::copy(src.begin(), src.end(), dst.begin());

上述结果: 0 1 2 3 4 -1 -1 ,size为8,超出元素被舍弃掉。

back_insert():

vector vct1 = {1,2,3,4,5,6};
vector vct3={-1};
copy(vct1.begin(), vct1.end(), back_inserter(vct3));

输出结果:-1 1 2 3 4 5 6,确保了容器有足够的大小来容纳每个元素。

如果使用front_inserter函数,正如该函数名一样,每次的插入都会是在front,即前沿。
延续相同的例子

copy(vct1.begin(), vct1.end(), front_inserter(vct3));

输出结果:6 5 4 3 2 1 -1

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1030724.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号