• stl(21)内置算法copy replace replace_if swap


    1.copy的用法

    copy用于将容器内指定范围的元素拷贝到另一容器  #include <algorithm>

    #include <iostream>
    #include <vector>
    #include <algorithm>
    int main(){
        std::vector<int> vec0;
        for(int i = 0;i<10;i++){
            vec0.push_back(i);
        }
        std::vector<int> vec1;
        vec1.resize(10);
        std::copy(vec0.begin(),vec0.end(),vec1.begin());
        std::for_each(vec1.begin(),vec1.end(),[](int i ){std::cout<<i<<std::endl;});
        return 0;
    }
     
    2.replace
    replace用于将容器中指定范围内的旧元素替换为新元素, #include <algorithm>
     std::vector<int> vec0;
        for(int i = 0;i<10;i++){
            vec0.push_back(i);
        }
      std::replace(vec0.begin(),vec0.end(),3,300);
        std::for_each(vec0.begin(),vec0.end(),[](int i ){std::cout<<i<<std::endl;});
     
    3.replace_if的用法
    replace_if用于按照指定的条件将容器中满足条件的旧元素替换为指定的新元素
     std::vector<int> vec0;
        for(int i = 0;i<10;i++){
            vec0.push_back(i);
        }
    std::replace_if(vec0.begin(),vec0.end(),[](int i){return i>3;},3000);
    std::for_each(vec0.begin(),vec0.end(),[](int i){std::cout<<i<<std::endl;});
     
    3.swap的用法
    swap用于交换两个容器中的所有元素,#include <algorithm>
     std::vector<int> vec0;
        for(int i = 0;i<10;i++){
            vec0.push_back(i);
        }
        std::vector<int> vec2(5,10);
        std::swap(vec0,vec2);
        std::for_each(vec2.begin(),vec2.end(),[](int i ){std::cout<<i<<std::endl;});
  • 相关阅读:
    欧几里德算法
    int 和 string 相互转换(简洁版)
    骆驼吃香蕉
    链表反转 (Multi-method)
    二分查找 (最经典代码,及其边界条件的实践分析)
    mottoes
    欧拉函数,欧拉定理,费马小定理。
    深搜和广搜的对比
    Python基础
    马拉车求最大回文字串
  • 原文地址:https://www.cnblogs.com/maycpou/p/14471346.html
Copyright © 2020-2023  润新知