zoukankan      html  css  js  c++  java
  • std::copy使用方法

    推荐2个c++函数库,类定义的资料库:

    http://en.cppreference.com/w/cpp/algorithm/copy

    http://www.cplusplus.com/reference/algorithm/copy/?kw=copy

    ---------------------------------------------------------------------------------------------------------------

    Defined in header <algorithm>
    template< class InputIt, class OutputIt >
         OutputIt copy( InputIt first, InputIt last, OutputIt d_first );

    Copies the elements in the range, defined by [first, last), to another range beginning at d_first

    Parameters

    first, last

                Input iterators to the initial and final positions in a sequence to be copied. The range used is [first,last), which contains all the elements between first and last, including the element pointed by first but not the element pointed by last.

                c++中的区间几乎都是左开右闭的,包括一些类的构造函数,比如 int a[5] = { 1, 2, 3, 4, 5};  set<int> s(&a[0], &a[4]); s里只会插入{ 1,2,3,4 }这4个元素。

    d_first

                Output iterator to the initial position in the destination sequence.
                This shall not point to any element in the range [first,last).

    Return value

    An iterator to the end of the destination range where elements have been copied.

    Complexity

    Linear in the distance between first and last: Performs an assignment operation for each element in the range.

    Example

    The following code uses copy to both copy the contents of one vector to another and to display the resulting vector:

    #include <algorithm>
    #include <iostream>
    #include <vector>
    #include <iterator>
    #include <numeric>
     
    int main()
    {
        std::vector<int> from_vector(10);
        std::iota(from_vector.begin(), from_vector.end(), 0);
     
        std::vector<int> to_vector;
        std::copy(from_vector.begin(), from_vector.end(),
                  std::back_inserter(to_vector));
    // or, alternatively,
    //  std::vector<int> to_vector(from_vector.size());
    //  std::copy(from_vector.begin(), from_vector.end(), to_vector.begin());
    // either way is equivalent to
    //  std::vector<int> to_vector = from_vector;
     
        std::cout << "to_vector contains: ";
     
        std::copy(to_vector.begin(), to_vector.end(),
                  std::ostream_iterator<int>(std::cout, " "));
        std::cout << '\n';
    }

    Output:

    to_vector contains: 0 1 2 3 4 5 6 7 8 9
  • 相关阅读:
    燕园笔记之一——穿梭
    openvc学习笔记(1)——简单应用
    匆匆过客
    opencv学习(3)——高斯平滑图像
    为什么(win10系统)电脑上面的鼠标(触摸板)突然用不了?怎么开启和关闭、
    SqlServer自动备份数据库
    CodeSmith批量生成实体类
    XML文件的序列化和反序列化
    AjaxPro的使用
    设计模式之——策略模式
  • 原文地址:https://www.cnblogs.com/scw2901/p/4228880.html
Copyright © 2011-2022 走看看