std::copy() std::back_inserter()

2024-02-10 07:32
文章标签 std back copy inserter

本文主要是介绍std::copy() std::back_inserter(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

std::copy

template<class InputIterator, class OutputIterator>OutputIterator copy (InputIterator first, InputIterator last, OutputIterator result)
{while (first!=last) {*result = *first;++result; ++first;}
  return result;
}

std::copy()函数和strcpy()的实现类似,只是参数类型由char 变为 iterator

// copy algorithm example
#include <iostream>     // std::cout
#include <algorithm>    // std::copy
#include <vector>       // std::vectorint main () {int myints[]={10,20,30,40,50,60,70};std::vector<int> myvector (7);//一定要初始化大小//这三个参数要记住std::copy ( myints, myints+7, myvector.begin() );//参数       first   last      result    // [first,last)std::cout << "myvector contains:";for (std::vector<int>::iterator it = myvector.begin(); it!=myvector.end(); ++it)std::cout << ' ' << *it;std::cout << '\n';return 0;
}
Output:
myvector contains: 10 20 30 40 50 60 70

std::back_inserter()

// back_inserter example
#include <iostream>     // std::cout
#include <iterator>     // std::back_inserter
#include <vector>       // std::vector
#include <algorithm>    // std::copyint main () {std::vector<int> foo,bar;for (int i=1; i<=5; i++){ foo.push_back(i); bar.push_back(i*10); }std::copy (bar.begin(),bar.end(),back_inserter(foo));
//back_inserter() 把当前iterator插入到foo容器尾部,返回类型是一个叫back_insert_iterator的东西..std::cout << "foo contains:";for ( std::vector<int>::iterator it = foo.begin(); it!= foo.end(); ++it )std::cout << ' ' << *it;std::cout << '\n';return 0;
}
Output:foo contains: 1 2 3 4 5 10 20 30 40 50

这篇关于std::copy() std::back_inserter()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/696499

相关文章

C++中std::distance使用方法示例

《C++中std::distance使用方法示例》std::distance是C++标准库中的一个函数,用于计算两个迭代器之间的距离,本文主要介绍了C++中std::distance使用方法示例,具... 目录语法使用方式解释示例输出:其他说明:总结std::distance&n编程bsp;是 C++ 标准

在Dockerfile中copy和add的区别及说明

《在Dockerfile中copy和add的区别及说明》COPY和ADD都是Dockerfile中用于文件复制的命令,但COPY仅用于本地文件或目录的复制,不支持自动解压缩;而ADD除了复制本地文件或... 目录在dockerfile中,copy 和 add有什么区别?COPY 命令ADD 命令总结在Doc

c++中std::placeholders的使用方法

《c++中std::placeholders的使用方法》std::placeholders是C++标准库中的一个工具,用于在函数对象绑定时创建占位符,本文就来详细的介绍一下,具有一定的参考价值,感兴... 目录1. 基本概念2. 使用场景3. 示例示例 1:部分参数绑定示例 2:参数重排序4. 注意事项5.

C++11的函数包装器std::function使用示例

《C++11的函数包装器std::function使用示例》C++11引入的std::function是最常用的函数包装器,它可以存储任何可调用对象并提供统一的调用接口,以下是关于函数包装器的详细讲解... 目录一、std::function 的基本用法1. 基本语法二、如何使用 std::function

Java 入门指南:Java 并发编程 —— Copy-On-Write 写时复制技术

文章目录 Copy-On-Write使用场景特点缺点CopyOnWrite 和 读写锁相同点之处不同之处 CopyOnWriteArrayList适用场景主要特性方法构造方法CopyOnWriteArrayList 使用示例 CopyOnWriteArraySet适用场景主要特性方法构造方法使用注意事项CopyOnWriteArraySet 使用示例 Copy-On-Writ

Flink Back Pressure

什么是 Back Pressure 如果看到任务的背压警告(如 High 级别),这意味着 生成数据的速度比下游算子消费的的速度快。以一个简单的 Source -> Sink 作业为例。如果能看到 Source 有警告,这意味着 Sink 消耗数据的速度比 Source 生成速度慢。Sink 正在向 Source 施加反压。 许多情况都会导致背压。例如,GC导致传入数据堆积,或者数据源在发送数

【C++学习(28)】通俗一点讲解:std::bind 回调技术

std::bind 是 C++11 标准库中的一个功能,它允许你“绑定”某些参数到一个函数、成员函数或可调用对象上,从而生成一个新的可调用对象。这种新的可调用对象可以稍后被调用,而且其中一些参数已经被预先设置好了。这在回调函数和异步编程中特别有用。 下面我用一个通俗的例子来解释 std::bind 是如何工作的。 假设场景 假设你有一个家庭厨师,他有一个技能叫做“做饭”。做饭需要两个参数:一

Rust模块std::thread

【图书介绍】《Rust编程与项目实战》-CSDN博客 《Rust编程与项目实战》(朱文伟,李建英)【摘要 书评 试读】- 京东图书 (jd.com) Rust到底值不值得学,之一  -CSDN博客 Rust到底值不值得学,之二-CSDN博客 Rust多线程编程概述-CSDN博客 12.3.2  等待所有线程完成 在前面的实例中,主线程没等到派生线程执行完毕就结束了,从而整个进程就会结束

关于std::unsorted_map和std::map

一. 前言   本文总结std库中unsorted_map和map的区别。 二. 区别示意图 mapunordered_mapOrderingincreasing order ( by default )no orderingImplementationSelf balancing BST ( like RBT )Hash TableSearch Timelog(n)average O(1)

关于std::shared_ptr和enable_share_from_this的一个隐蔽的问题

在使用共享指针时,遇到了一个如下问题: #include <iostream>class traversal;class observer {std::shared_ptr<traversal> m_tra;public:observer(std::shared_ptr<traversal> t):m_tra(t) {};~observer() { std::cout << "releas