C++ STL交换替换

C++ STL更易型算法互换元素swap_ranges使用方法 交换[First1, Last1]区间与[First2,…]区间的元素 返回第二区间中最后一个被交换元素的下一位置 调用者必须确保目标区间有足够空间 两区间不得重叠 如果要将相同类型的两个容器内的所有元素互换,应该使用swap()成员函数,因为该成员函数通常具备常量复杂度 复杂度:线性,执行numElems次交换动作 使用例子: int main() { vector<int>a;... 阅读详情

#include <iostream>
#include <string>
#include <vector>
#include <iterator>
#include <algorithm>
#include <list>
#include <set>
#include <cstdlib>
#include <functional>
using namespace std;

struct string_length_exceeds
{
 string_length_exceeds(int n): limit(n){}
 bool operator()(const string& s)
 {
  return s.size()>limit;
 }
 int limit;
};

int main()
{
 char A[]="abcdefgh";
 vector<char> V(A,A+strlen(A));

 list<char> L;
 copy(V.begin(),V.end(),back_inserter(L));
 copy(L.begin(),L.end(),ostream_iterator<char>(cout," "));

 ////////////////swap()//////////////////////////////////////////////////////////
 int x=1;
 int y=2;
 swap(x,y);
 cout<<x<<" "<<y<<endl;

 ///////////////////swap_ranges///////////////////////////////////////////////////////

 vector<int> v1;
 v1.push_back(1);
 v1.push_back(2);

 vector<int> v2;
 v2.push_back(3);
 v2.push_back(4);

 swap_ranges(v1.begin(),v1.end(),v2.begin());
 copy(v1.begin(),v1.end(),ostream_iterator<int>(cout," "));
 cout<<endl;
 
 copy(v2.begin(),v2.end(),ostream_iterator<int>(cout," "));
 cout<<endl;

 ////////////////transform//////////////////////////////////////////////////////////
 const int N=7;
 double B[N]={1,2,3,4,5,6,7};
 list<double> L3(N);

 transform(B,B+N,L3.begin(),negate<double>());
 copy(L3.begin(),L3.end(),ostream_iterator<double>(cout," "));
 cout<<endl;

 ///////replace///////////////////////////////////////////////////////////////////
 vector<string> fruits;
 fruits.push_back("cherry");
 fruits.push_back("apple");
 fruits.push_back("peach");
 fruits.push_back("apple");
 fruits.push_back("cherry");
 replace(fruits.begin(),fruits.end(),string("apple"),string("orange"));
 copy(fruits.begin(),fruits.end(),ostream_iterator<string>(cout," "));
 cout<<endl;

 /////////replace_if()/////////////////////////////////////////////////////////////////
 vector<double> Ve;
 Ve.push_back(1);
 Ve.push_back(-3);
 Ve.push_back(2);
 Ve.push_back(-1);
 replace_if(Ve.begin(),Ve.end(),bind2nd(less<double>(),0),11);
 copy(Ve.begin(),Ve.end(),ostream_iterator<double>(cout," "));
 cout<<endl;
 
 ///////////replace_if()///////////////////////////////////////////////////////////////
 string str[7]={"oxygen","carbon","nitrgen","iron","sodiym","hydrogen","silicon"};
 replace_if(str,str+7,string_length_exceeds(6),"&&&");
 copy(str,str+7,ostream_iterator<string>(cout," "));
 cout<<endl;

 //////////replace_copy()////////////////////////////////////////////////////////////////
 

 return 0;
}

25 标准模板库STL之算法2 常用的集合算法可参看下表。需要注意的是,这些算法生效有一个前提条件:所有的序列必须是有序的。“移除”序列中所有相邻的重复元素(仅保留一个),返回去重后不重复序列的最后一个迭代器的下一个迭代器。搜索算法的具体使用,可参看下面的示例代码。移除算法的具体使用,可参看下面的示例代码。替换算法的具体使用,可参看下面的示例代码。反转算法的具体使用,可参看下面的示例代码。交换算法的具体使用,可参看下面的示例代码。去重算法的具体使用,可参看下面的示例代码。集合算法的具体使用,可参看下面的示例代码。 阅读详情

相关推荐

【053】C++ STL 算法精讲:copy、replace、swap 用好了能省一半代码!

本文介绍 C++ STL 中的 `copy`、`replace` 和 `swap` 算法,包括原型、参数、用法示例和注意事项。

Lion_Long的博客 867

C++ STL 算法:交换算法

一、swap_ranges(b,e,b2) 例: swap_ranges(ivec.begin(), ivec.end(), ideq.begin()); swap_ranges(ideq.begin(), ideq.begin()+3,ideq.rbegin()); 二、注意: 下列两种方法也是交换算法 1.容器的swap()成员函数 ivec1.swap(ivec2);//

梦幻DUO的游戏开发之路 530

PLSQL 14.0.6 下载使用教程

众所周知,PLSQL 只是一个oracle第三方开发测试工具,它依赖oracle 客户端搭配使用,但是oracle 客户端有2G,相当庞大,不建议安装。所以我们如果下载安装好PLSQL,再下载好轻量级的支持远程链接的oracle客户端,这样搭配使用可以的话就最好了,答案是可以的。 第一步: PLSQL 下载与安装 PLSQL 14.0.6 下载地址 : https://www.allroundautomations.com/registered-plsqldev/ 下载下来,除了安装路径更改一下,

qq976511508的博客 2134

(7)STL算法之交换&&赋值

3、互换 STL的大部分容器都提供了成员函数swap(),用于两个不同容器对象之间的元素交换,同时,STL算法也提供了算法swap()。个人认为尽量使用容器自己的swap()。 (1)swap() // 声明及定义 template <class T> void swap (T& a, T& b); template <class T> void swap (T& a, T& b) { T c(std::move(a));

仗剑天涯的博客 640

从零构建:用Simulink搭建固定翼无人机六自由度模型的避坑指南

本文详细介绍了使用Simulink从零构建固定翼无人机六自由度动力学模型的完整流程和避坑指南。重点解析了模型架构设计、气动力计算、参数配置、仿真求解器选择等关键环节的常见问题与解决方案,帮助开发者快速建立准确可靠的无人机控制系统仿真模型。

hhh00的博客 999

Typora绘制思维导图

我们观察一下,其实思维导图就是树状结构的数据嘛,作为程序员,拿语言写树状结构的数据是很平常的事情。而且写代码可比画图省事多了,查阅资料可以知道,有一种`mermaid`语法,就是做这件事情的,支持 UML,甘特图,流程图等。

Peter Cheung的博客 7933

C++ STL(8):元素交换

#include &lt;iostream&gt; #include &lt;algorithm&gt; #include &lt;vector&gt; //交换元素 int main() { /************************************************************************/ //swap /****************...

caychen的博客 2856

RandLA-Net复现SemanticKITTI和S3DIS数据集

RandLA-Net复现KITTI和室内数据集

weixin_48845174的博客 4111

c++ stl 数据交换算法swap_ranges

最近在学stl中通用算法的使用,打算将学习过程中的算法一个一个摘录下来,就从swap_ranges()开始吧! swap_ranges():交换两个区域中的数据 #include #include #include #include using namespace std; int main() { vector v; srand(time(0)); for(int i=0;i<

似曾相识燕归来的博客 1013

禾赛XT16 vs XT32激光雷达实测对比:选16线还是32线?看完这篇不纠结

本文深度评测禾赛XT16与XT32激光雷达的性能差异与应用选择。通过实测数据对比,分析16线与32线激光雷达在点云密度、动态场景适应性及与IMU协同工作等方面的表现,帮助用户根据自动驾驶、机器人等不同应用场景做出最优选型决策。

table的专栏 944

从误检率30%到99.7%:YOLOv8/v9工业零件缺陷检测实战(附产线部署全流程与参数调优秘籍)

工业场景YOLO实战:从实验室到车间的关键调优策略 本文针对工业缺陷检测的特殊性,系统总结了YOLOv8/v9在工业应用中的实战经验。通过齿轮厂缺陷检测案例,揭示了实验室模型与工业场景的三点本质差异:小目标特性(0.2-1mm缺陷)、复杂背景干扰(油污/反光)和数据量不足问题。重点提出了工业级解决方案:1)数据采集需覆盖极端工况(不同光照/污染/角度);2)标注采用LabelStudio+预标注提升效率;3)定制工业增强策略(反光模拟/缺陷复制粘贴)。文章还提供了完整的参数调优记录和TensorRT加速部署

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1733

【C++】STL 容器 - string 字符串操作 ⑥ ( string 字符替换 - replace 函数替换字符串 | string 字符交换值 - swap 函数交换字符串 )

一、string 字符替换 - replace 函数替换字符串 1、string 类 replace 函数原型说明 2、代码示例 - 字符串替换 二、string 字符交换值 - swap 函数交换字符串 1、string 类 swap 函数原型说明 2、代码示例 - swap 函数交换值

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 5111

【Java 实战】通过Redis实现购物车功能

以上就是今天要讲的内容,本文仅仅简单介绍了如何通过Redis实现购物车功能,以上方法亲测有效,希望能给大家一个参考。

~~~~~~~BUG FLY~~~~~~~~~ 9969

C++STL详解(一)—— string类

文章目录C++STL详解(一) —— sring类一、string的定义方式二、string的插入三、string的拼接四、string的删除五、string的查找六、string的比较七、string的替换八、string的交换九、string的大小和容量十、string中元素的访问十一、string中运算符的使用十二、string中与迭代器相关的函数 C++STL详解(一) —— sring类 本次内容大纲: 一、string的定义方式 string类实现了多个构造函数的重载,常用的构造函数如下: st

2021dragon的博客 9301

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

STL 拷贝与替换:深入探索 C++ 标准模板库中的强大工具

STL 是 C++ 标准模板库的核心部分,它提供了通用的模板类和函数,用于处理数据结构和算法。STL 的主要组件包括容器(如vectorlistmap等)、迭代器、算法和函数对象。这些组件通过模板机制实现高度的通用性和灵活性,使得开发者能够以简洁的方式实现复杂的操作。STL 提供了丰富的算法和工具,用于处理容器中的元素。通过本文的示例,我们深入探讨了 STL 中的拷贝、替换和交换操作。这些操作不仅简单易用,而且效率极高,能够显著提升开发效率和代码质量。拷贝操作:使用std::copy。

qq_57063846的博客 846

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

C++STL详解(一)——String接口详解(上)!!!

string类是CPP中STL中处理字符串的一个类,它给我们提供了丰富的接口以供于我们使用。虽然我们传统的C库中有相关的函数以供于我们使用,但是由于操作起来比较麻烦,因此CPP中实现了string类。string类所在的头文件为

duanku111的博客 608

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

C++ 拷贝替换算法

在 C++ STL 中,copy()是一种常用的算法,,不会改变原有序列的大小。📖其中,first和last分别表示被复制序列的起始位置和结束位置;d_first表示目标序列的起始位置。📖copy()函数从源序列()中复制元素到目标序列()中。它返回目标序列中最后一个被写入元素的后继位置。copy()函数可以对标准数组、STL 容器等基本类型以及自定义类型进行操作。

fckbb的博客 1875

变易算法 - STL算法

原创:变易算法 - STL算法 作者:MilkCu 摘要:C++ STL标准模板库在数据结构和算法的实践领域发挥着重要作用,极大的提高了开发效率。STL的三大组成部分为容器、迭代器、算法,本文主要讲解STL算法中的变易算法。本文从实践的角度简单介绍了一下函数原型和相关函数的使用。 引言 C++ STL的变易算法(Mutating Algorithms)是一组能修改容器元素数据的模板函数,可

MilkCu的专栏 1369

stl算法_STL算法简介

stl算法 This article will show you some of the more useful Standard Template Library (STL) algorithms through the use of working examples. You will learn about how these algorithm...

cunchi8090的博客 570

8.1 C++ STL 变易拷贝算法

C++ STL中的变易算法(Modifying Algorithms)是指那些能够修改容器内容的算法,主要用于修改容器中的数据,例如插入、删除、替换等操作。这些算法同样定义在头文件中,它们允许在容器之间进行元素的复制、拷贝、移动等操作,从而可以方便地对容器进行修改和重组。copy()copy_if()copy_n()fill()fill_n()generate()move()这些变易算法允许我们在不创建新容器的情况下,对现有容器进行元素的复制、拷贝和重排。

微软技术分享 5990

C++学习笔记(三十八)——STL之修改算法

在 C++ 标准库(STL)中,修改算法可以在容器中应用特定的操作,如修改元素的值、替换值、插入新元素等。 修改算法通常返回容器的迭代器,指示修改的位置或结果。

weixin_45857378的博客 927

STL常用拷贝替换交换算法

/*//拷贝copy(iterator beg, iterator end, iterator dest)//替换replace(iterator beg, iterator end, oldvalue, newvalue)//交换//写俩个容器swap(container c1, container c2)*/# include &lt;iostream&gt;# include &lt;vec...

I_O_fly的博客 300

C++提高——STL中常用的拷贝和替换算法

1、copy() vector<int> vecIntA; vecIntA.push_back(1); vecIntA.push_back(3); vecIntA.push_back(5); vecIntA.push_back(7); vecIntA.push_back(9); vector<int> vecIntB; vecIntB.re...

Orange_Wu的博客 268

C++进阶STL-常用的拷贝和替换算法

copy 例子:将v1的第二个元素开始到最后一个元素,拷贝给v2 #include &amp;quot;stdafx.h&amp;quot; #include &amp;amp;lt;iostream&amp;amp;gt; #include &amp;amp;lt;algorithm&amp;amp;gt; #include &amp;amp;lt;vector&amp;amp;gt; using namespace std;

zzyczzyc的博客 472

C++进阶:STL算法总结

头文件 功能 <algorithm> 算法函数 <numeric> 数值算法 <functinal> 函数对象/仿函数 分类 填充 函数 作用 fill(beg,end,val) 将值val赋给[beg,end)范围内的所有元素 fill_n(beg,n,val) 将值val赋给[beg,beg+n)范围内的所有...

qq_43598865的博客 292
上一篇: C++ STL 计算问题
下一篇: C++ STL填充算法
liusoftware5
博客等级 码龄16年 1粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值