• C++ STL 常用拷贝和替换算法


    C++ STL 常用拷贝和替换算法

    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.resize(5); //扩大空间
    copy(vecIntA.begin(), vecIntA.end(), vecIntB.begin()); //vecIntB: {1,3,5,7,9}

    replace() 

    replace(beg,end,oldValue,newValue): 将指定范围内的所有等于oldValue的元素替 换成newValue。

    vector<int> vecIntA;
    vecIntA.push_back(1);
    vecIntA.push_back(3);
    vecIntA.push_back(5);
    vecIntA.push_back(3);
    vecIntA.push_back(9);
    replace(vecIntA.begin(), vecIntA.end(), 3, 8); //{1,8,5,8,9}

    replace_if() 

    replace_if : 将指定范围内所有操作结果为true的元素用新值替换。

    用法举例:
    replace_if(vecIntA.begin(),vecIntA.end(),GreaterThree,newVal)
    其中 vecIntA是用vector<int>声明的容器
    GreaterThree 函数的原型是 bool GreaterThree(int iNum)

    //把大于等于3的元素替换成8
    vector<int> vecIntA;
    vecIntA.push_back(1);
    vecIntA.push_back(3);
    vecIntA.push_back(5);
    vecIntA.push_back(3);
    vecIntA.push_back(9);
    replace_if(vecIntA.begin(), vecIntA.end(), GreaterThree, 8); // GreaterThree的定义在上面。

    swap()

    swap: 交换两个容器的元素

    vector<int> vecIntA;
    vecIntA.push_back(1);
    vecIntA.push_back(3);
    vecIntA.push_back(5);
    vector<int> vecIntB;
    vecIntB.push_back(2);
    vecIntB.push_back(4);
    swap(vecIntA, vecIntB); //交换

  • 相关阅读:
    Java操作PDF之iText超入门
    Bootstrap 总结
    使用iframe框架后的页面跳转时目标页面变为iframe的子页面的问题
    Alluxio/Tachyon如何发挥lineage的作用?
    (转载)Zab vs. Paxos
    mysql批量数据导入探究
    读技术性文本的技巧
    Spark设计思想浅析
    MapReduce调优总结与拓展
    MapReduce 计算模式
  • 原文地址:https://www.cnblogs.com/lsgxeva/p/7793431.html
Copyright © 2020-2023  润新知