当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ std::replace_copy()用法及代码示例


C++ STL std::replace_copy() 函数

replace_copy()函数是算法头的库函数,用于替换范围内的值,将替换后的结果中的元素复制,接受序列的范围[开始,结束],结果序列的开始位置,旧值和新值,它将范围中的所有 old_value 替换为 new_value,并将范围复制到从结果开始的范围。

注意:使用 replace_copy() 函数 - 包括<algorithm>标题或者您可以简单使用<bits/stdc++.h>头文件。

std::replace_copy() 函数的语法

    std::replace_copy(
        iterator start, 
        iterator end, 
        iterator start_result, 
        const T& old_value, 
        const T& new_value);

参数:

  • iterator start, iterator end- 这些是指向容器中开始和结束位置的迭代器,我们必须在那里运行替换操作。
  • iterator start_result- 是结果序列的开始迭代器。
  • old_value- 要替换​​的值。
  • new_value- 要分配的值而不是 old_value。

返回值: iterator- 它返回一个迭代器,指向写入结果序列的最后一个元素之后的元素。

例:

    Input:
    //an array (source)
    int arr[] = { 10, 20, 30, 10, 20, 30, 40, 50, 60 };
    
    //declaring a vector (result sequence)
    vector<int> v(6);
    
    //copying 6 elements of array to vector
    //by replacing 10 to -1
    replace_copy(arr + 0, arr + 6, v.begin(), 10, -1);
    
    Output:
    vector (v):-1 20 30 -1 20 30

用于演示 std::replace_copy() 函数使用的 C++ STL 程序

在这个程序中,我们有一个数组,我们通过用 -1 替换 10 将它的 6 个元素复制到一个向量中。

//C++ STL program to demonstrate use of
//std::replace_copy() function
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main()
{
    //an array
    int arr[] = { 10, 20, 30, 10, 20, 30, 40, 50, 60 };

    //declaring a vector
    vector<int> v(6);

    //printing  elements
    cout << "before replacing, Array (arr):";
    for (int x:arr)
        cout << x << " ";
    cout << endl;

    cout << "vector (v):";
    for (int x:v)
        cout << x << " ";
    cout << endl;

    //copying 6 elements of array to vector
    //by replacing 10 to -1
    replace_copy(arr + 0, arr + 6, v.begin(), 10, -1);

    //printing vector elements
    cout << "after replacing, Array (arr):";
    for (int x:arr)
        cout << x << " ";
    cout << endl;

    cout << "vector (v):";
    for (int x:v)
        cout << x << " ";
    cout << endl;

    return 0;
}

输出

before replacing, Array (arr):10 20 30 10 20 30 40 50 60
vector (v):0 0 0 0 0 0
after replacing, Array (arr):10 20 30 10 20 30 40 50 60
vector (v):-1 20 30 -1 20 30

参考:C++ std::replace_copy()



相关用法


注:本文由纯净天空筛选整理自 std::replace_copy() function with example in C++ STL。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。