`
isiqi
  • 浏览: 16710134 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

变动性算法modifying algorithms

阅读更多

目的:变动内容

注意:目标区间不能是关联式容器

所有具有单一目标区间的算法,都返回最后一个被复制元素的下一个位置

一。复制

1.OutputIterator copy(InputIterator sourceBegin, InputIterator sourceEnd, OutputIterator destBegin);

2.BidirectionalIterator1 copy_backward(BidirectionalIterator1 sourceBegin, BidirectionalIterator1 sourceEnd,

BidirectionalIterator2 destEnd);

copy正向遍历,copy_backward逆向遍历

注意:当源区间和目标区间重复时,1.复制到前端,则用copy,2. 复制到后端,用copy_backward

逆向遍历:reverse_copy();

二。转换

1.OutputIterator transform(InputIterator sourceBegin, InputIterator sourceEnd, OutIterator destBegin,

UnaryFunc op); //op(elem);返回最后一个被转换的元素的下一个位置

OutputIterator transform(InputIterator1 source1Begin, InputIterator1 source1End,

InputIterator2 source2Begin, OutputIterator destBegin, BinaryFunc op);

// op(source1Elem,source2Elem); 返回最后一个被转换元素的下一个元素

确保目标区间有足够空间,或用插入迭代器。

三。互换

1.ForwardIterator2 swap_ranges(ForwardIterator1 begin1,ForwardIterator1 end1,ForwardIterator2 begin2);

//两区间不能不能重叠

这个函数主要用于指定区间交换,swap()主要是全部元素交换

四。赋值

1.void fill(ForwardIterator begin,ForwardIterator end, const T&value); //[begin,end)赋予value

2.void fill_n(OutputIterator begin,Size num, const T&value); //从begin开始前num个元素赋予value

3.void generatr(ForwardIterator begin, ForwardIterator end, Func op); //op();产生新值给[begin,end);

4.void generate_n(OutputIterator begin, Size num, Func op); //op()产生num个新值给begin开始的区间

五。替换

1.void replace(ForwardIterator begin, ForwardIterator end, const T&oldValue, const T&newValue);

//把[begin,end)的oldValue值替换为newValue

2.void replace_if(ForwardIterator begin, ForwardIterator end, UnaryPredicate op, const T&newValue);

//op(elem)为true的元素替换为newValue

3.OutputIterator replace_copy(InputIterator sourceBegin, InputIterator sourceEnd, OutputIterator destBegin,

const T&oldValue, const T&newValue);

replace_copy 是copy再replace。

4.OutputIterator replace_copy_if(InputIterator sourceBegin, InputIterator sourceEnd, OutputIterator destBegin,

UnaryPredicate op, const T&newValue);

replace_copy_if是copy和replace_if的结合。

分享到:
评论

相关推荐

    Graph-theoretic algorithms

    - **修改树分解(Modifying the Tree Decomposition)**:为了适应动态规划的需要,对原始树分解进行调整。 - **子图的子树(Subgraphs of Subtrees)**:分析了树分解中子树的特性。 以上内容是对滑铁卢大学CS762...

    accessing-and-modifying.zip

    例如,模糊处理可以使用高斯滤波器`cv2.GaussianBlur()`,边缘检测有Canny算法`cv2.Canny()`,旋转图像可以使用`cv2.getRotationMatrix2D()`和`cv2.warpAffine()`。此外,颜色空间转换也是常见的操作,如从BGR转换到...

    基于蜜蜂进化型粒子群算法的电力系统无功优化.pdf

    【标题】和【描述】提到的是使用蜜蜂进化型粒子群算法(Bee Evolution Modifying Particle Swarm Optimization,简称BEMPSO)对电力系统的无功优化问题进行研究的文章。这篇文章发表在2010年的《电力系统保护与控制...

    C++ 标准模板文档

    - **修改算法(Modifying Algorithms)**:如`replace()`用于替换容器中的元素等。 #### 函数对象(Function Objects) 函数对象,也被称为仿函数,是STL中的一个高级特性,它允许将函数作为参数传递给其他函数,或者...

    计算机图形学 种子填充算法 MFC、VC

    种子填充算法,自己写的,希望对大家有用 // 种子法View.cpp : implementation of the CMyView class // #include "stdafx.h" #include "种子法.h" #include "种子法Doc.h" #include "种子法View.h" #ifdef _...

    cs 线段裁剪算法 MFC下实现

    // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return CView::PreCreateWindow(cs); } //////////////////////////////////////////////////////////////////////////...

    akn_cd_modifying_概率模拟_MATLAB抽卡_

    通过对"akn_cd_modifying.py"文件的研究,我们可以深入理解概率模拟在实际应用中的方法。 首先,我们要了解概率模拟的基础概念。概率模拟是通过计算机程序来模拟随机事件,以研究真实世界中复杂的概率问题。在抽卡...

    Improving Support Vector Machine Classifiers by Modifying Kernel Functions

    通过对人工数据和真实数据集的模拟实验,结果显示,经过修改的核函数确实能显著减少泛化错误率,验证了所提方法的有效性。 #### 高斯径向基函数的改进 高斯径向基函数是一种常用的核函数,其形式为\(K(x, y) = \...

    关于图形学的边缘扫描算法

    种子法扫描EGIN_MESSAGE_MAP(CTView, CView) //{{AFX_MSG_MAP(CTView) ... // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return CView::PreCreateWindow(cs); }

    js-dom-and-events-modifying-html-readme-v-000-源码.rar

    JavaScript(JS)是一种广泛应用于网页开发的脚本语言,它使得网页具有交互性、动态性和响应性。在网页中,DOM(文档对象模型)是HTML和XML文档的一种结构化表示,允许我们通过编程方式访问和修改页面内容。这个...

    SpringData @Query和@Modifying注解原理解析

    总结起来,`@Query`和`@Modifying`是Spring Data JPA中两个强大的工具,它们提供了更大的灵活性,使得开发者可以自定义复杂的查询和修改操作,而不受默认方法命名规则的限制。通过熟练掌握这两个注解,你可以更好地...

    OpenWF Display Configuration Developer's Guide: Modifying the Wfdcfg library

    If you are integrating a new display, you must configure and provide the parameters of your display based on its specifications via the OpenWF Display Configuration API (Wfdcfg Library).

    modifying-the-name-of-computer.rar_computer

    在IT领域,修改计算机名称是一项常见的系统管理任务,特别是在网络环境中,为了便于管理和识别,每台设备都需要有独特的标识。本教程将通过一个Delphi编程的例子来探讨如何修改计算机名称,Delphi是一款强大的...

    03 - Microsoft Windows Server 2012 70-410 Modifying Your Installation.flv

    Microsoft Windows Server 2012 70-410 Series Introduction

    sun explorer 5.11

    <br>Copyright 1996-2007 Sun Microsystems, Inc. All rights reserved. Copyright 1996-2007 Sun Microsystems, Inc. All rights reserved. Modifying /etc/opt/SUNWexplo/1280input.txt ...

    用C/C++实现代码的动态修改(SMC)

    所谓SMC(Self Modifying Code)技术,就是一种将可执行文件中的代码或数据进行加密,防止别人使用逆向工程工具(比如一些常见的反汇编工具)对程序进行静态分析的方法,只有程序运行时才对代码和数据进行解密,从而...

    简单谈谈C++ 头文件系列之(algorithm)

    简介 algorithm头文件是C++的... 非修改性顺序操作(Non-modifying sequence operations) 可变顺序操作(Mutating sequence operations) 排序和关系操作(Sorting and related operations) C库算法(C library al

Global site tag (gtag.js) - Google Analytics