C++--copy

news/2024/9/1 3:09:32 标签: c++, 算法, 前端

copy
拷贝,把源迭代器区间的值拷贝到目的迭代器。使用者保证目的空间足够。时间复杂度O(n)。
函数声明如下:

template<class InputIterator, class OutputIterator>
OutputIterator copy(
InputIterator _First,   //源开始迭代器
InputIterator _Last,    //源结束迭代器
OutputIterator _DestBeg //目的开始迭代器
);

源码剖析


template<class InputIterator, class OutputIterator> 
OutputIterator copy( 
InputIterator first,   //源开始迭代器 
InputIterator last,    //源结束迭代器 
OutputIterator destBeg //目的开始迭代器 
)
{
    while(first != last) //遍历源迭代器区间 
    {
        *destBeg = *first; //拷贝元素值 
        ++destBeg;         //迭代器自增 
        ++first; 
    }
    return destBeg;   
}

应用举例

//输出vector的所有元素
template<typename T>
void Show(const vector<T>& v)
{
    for (auto x : v)  
        cout << x << " ";  
    cout << endl;  
}

int main()  
{
    vector<int>v1{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};  
    vector<int>v2;  

    //下面这句可以使用 v2 = v1;  
    copy(v1.begin(),v1.end(),back_inserter(v2));//把v1的元素全部拷贝到v2,注意v2需要安插迭代器


    cout << "拷贝v1后,v2:"; Show(v2);  

    copy(v1.begin()+3,v1.begin()+6,v2.begin());//拷贝部分数据,这个不能使用 = 


    cout << "拷贝部分数据后,v2:"; Show(v2);  

    return 0;  
}

本篇完!


http://www.niftyadmin.cn/n/5561670.html

相关文章

四六级词汇小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;英语词汇管理&#xff0c;易错词管理&#xff0c;学习笔记管理&#xff0c;签到打卡管理&#xff0c;论坛管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;英语词汇&…

C++写一个线程池

C写一个线程池 文章目录 C写一个线程池设计思路测试数据的实现任务类的实现线程池类的实现线程池构造函数线程池入口函数队列中取任务添加任务函数线程池终止函数 源码 之前用C语言写了一个线程池&#xff0c;详情请见&#xff1a; C语言写一个线程池 这次换成C了&#xff01;…

beego框架_golang web框架_使用介绍

beego简介 beego是一个用于快速开发Go应用的http框架&#xff0c;由Go语言方面的技术大牛设计。beego可以用来快速开发API、Web、后端服务等各种应用&#xff0c;是一个RESTful的框架&#xff0c;主要设计灵感来源于tornado、sinatra、flask这三个框架&#xff0c;但结合了Go本…

SwiftUI 6.0(Xcode 16)新 PreviewModifier 协议让预览调试如虎添翼

概览 用 SwiftUI 框架开发过应用的小伙伴们都知道&#xff0c;SwiftUI 中的视图由各种属性和绑定“扑朔迷离”的缠绕在一起&#xff0c;自成体系。 想要在 Xcode 预览中泰然处之的调试 SwiftUI 视图有时并不是件容易的事。其中&#xff0c;最让人秃头码农们头疼的恐怕就要数如…

防火墙实验(三)双机热备与带宽管理

要求12&#xff1a; 防火墙1&#xff1a; 防火墙2&#xff1a; 以上完成负载分担&#xff0c;接下来在防火墙1配置策略然后同步到防火墙3上 要求13&#xff1a; 要求14&#xff1a; 条件15在防火墙3上配置&#xff0c;配置之前需要将双机热备关闭 要求16&#xff1a; 至此实验…

【Qt】QWidget在隐藏时,发送信号

1. 介绍 Qt中&#xff0c;QWidget隐藏时&#xff0c;默认不发送信号。需要重写hideEvent()函数实现。 2. 代码 #include <QWidget> class MyWidget : public QWidget {Q_OBJECT signals:void hiddenStateChanged(bool isHidden);protected:void hideEvent(QHideEvent*…

深入理解 Git Reset 的三种模式及其使用场景

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Android ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 1. --soft 模式 2. --mixed 模式&#xff08;默认&#xff09; 3. --hard 模式 总结 结语 我的其他博客 前言 在日常的开发…

vs code 启动react项目,执行npm start报错原因分析

1.执行 npm start错误信息&#xff1a;npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写&#xff0c;如果包括路径&#xff0c;请确保路径正确&#xff0c;然后再试一次。 所在位置 行:1 字符: 1 npm start ~~~ CategoryInfo …