zoukankan      html  css  js  c++  java
  • 泛型算法(三)之复制算法

    1、copy(InputIterator first, InputIterator last, OutputIterator result):复制一个序列到另一个序列

        std::vector<int> c;
        std::vector<int> result;
        c.reserve(10);
        result.resize(10);    //必须要指定元素数量,具体参考《Effective STL》的条款30 --- 确保目标区域足够大
        //向c中添加元素
        for (int i = 0; i < 10; i++)
        {
            c.push_back(i);
        }
        //把c中的元素复制到result中
        std::copy(c.begin(), c.end(), result.begin());
        //输出result
        for (auto var : result)
        {
            std::cout << var << ",";
        }
        //打印结果:0,1,2,3,4,5,6,7,8,9

    2、copy_backward(BidirectionalIterator1 first, BidirectionalIterator1 last, BidirectionalIterator2 result):把一个序列复制到另一个序列,按照由尾到头顺序依次复制元素

            std::vector<int> c;
        std::vector<int> result;
        c.reserve(10);
        result.resize(10);    //必须要指定元素数量,具体参考《Effective STL》的条款30 --- 确保目标区域足够大
        //向c中添加元素
        for (int i = 0; i < 10; i++)
        {
            c.push_back(i);
        }
        //把c中的元素复制到result中
        std::copy_backward(c.begin(), c.end(), result.end());
        //输出result
        for (auto var : result)
        {
            std::cout << var << ",";
        }
        //打印结果:0,1,2,3,4,5,6,7,8,9    

    3、copy_n(InputIterator first, Size n, OutputIterator result):C11算法。复制序列中前n个元素

        std::vector<int> c;
        std::vector<int> result;
        c.reserve(10);
        int count = 5;
        result.resize(count);    //必须要指定元素数量,具体参考《Effective STL》的条款30 --- 确保目标区域足够大
        //向c中添加元素
        for (int i = 0; i < 10; i++)
        {
            c.push_back(i);
        }
        //把c中的前5个元素复制到result中
        std::copy_n(c.begin(), count, result.begin());
        //输出result
        for (auto var : result)
        {
            std::cout << var << ",";
        }
        //打印结果:0,1,2,3,4,    
  • 相关阅读:
    最长公共子序列
    学习MySQL常用操作命令
    using的几种用法
    C++循环的简单使用【闲来写来练练手~】
    使用【数据库收缩功能】实现多个数据文件的合并
    Google的十个核心技术(摘自CSDN)
    OPENGL入门学习
    dive into python 第 5 章 对象和面向对象
    [转]已知两圆圆心坐标及半径求两圆交点 (C语言|参数方程求解)
    The Python Tutorial 4. More Control Flow Tools的一些小记
  • 原文地址:https://www.cnblogs.com/dongerlei/p/5141108.html
Copyright © 2011-2022 走看看