当前位置: 首页 > 编程日记 > 正文

C++中std::reverse和std::reverse_copy的使用

std::reverse:反转排序容器内指定范围中的元素。

std::reverse_copy与std::reverse唯一的区别是:reverse_copy会将结果拷贝到另外一个容器中,而不影响原容器的内容。

std::reverse: defined in header <algorithm>,  reverses the order of the elements in the range [first, last).

std::reverse_copy: defined in header <algorithm>, copies the elements in the range[first,last) to the range beginning at result, but in reverse order.

下面是从其他文章中copy的测试代码,详细内容介绍可以参考对应的reference:

#include "reverse.hpp"
#include <iostream>
#include <algorithm> // std::reverse/std::reverse_copy
#include <vector>
#include <string>/* The behavior of this function template(std::reverse) is equivalent to
template <class BidirectionalIterator>
void reverse (BidirectionalIterator first, BidirectionalIterator last)
{while ((first!=last)&&(first!=--last)) {std::iter_swap (first,last);++first;}
} *//* The behavior of this function template(std::reverse_copy) is equivalent to:
template <class BidirectionalIterator, class OutputIterator>
OutputIterator reverse_copy (BidirectionalIterator first,BidirectionalIterator last, OutputIterator result)
{while (first!=last) {--last;*result = *last;++result;}return result;
} *//
// reference: http://en.cppreference.com/w/cpp/algorithm/reverse
int test_reverse_1()
{std::vector<int> v({ 1, 2, 3 });std::reverse(std::begin(v), std::end(v));std::cout << v[0] << v[1] << v[2] << '\n';int a[] = { 4, 5, 6, 7 };std::reverse(std::begin(a), std::end(a));std::cout << a[0] << a[1] << a[2] << a[3] << '\n';return 0;
}/
// reference: http://www.cplusplus.com/reference/algorithm/reverse/
int test_reverse_2()
{std::vector<int> myvector;// set some values:for (int i = 1; i<10; ++i) myvector.push_back(i);   // 1 2 3 4 5 6 7 8 9//std::reverse(myvector.begin(), myvector.end());    // 9 8 7 6 5 4 3 2 1std::reverse(myvector.begin(), myvector.begin()+5);    // 5 4 3 2 1 6 7 8 9// print out content:std::cout << "myvector contains:";for (std::vector<int>::iterator it = myvector.begin(); it != myvector.end(); ++it)std::cout << ' ' << *it;std::cout << '\n';std::string str{ "abcdef" };std::reverse(str.begin(), str.end());fprintf(stderr, "str: %s\n", str.c_str());return 0;
}/
// reference: http://www.cplusplus.com/reference/algorithm/reverse_copy/
int test_reverse_copy_1()
{int myints[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };std::vector<int> myvector;myvector.resize(5);    // allocate spacestd::reverse_copy(myints, myints + 5, myvector.begin());// print out content:std::cout << "myvector contains:";for (std::vector<int>::iterator it = myvector.begin(); it != myvector.end(); ++it)std::cout << ' ' << *it;std::cout << '\n';return 0;
}//
// reference: http://en.cppreference.com/w/cpp/algorithm/reverse_copy
int test_reverse_copy_2()
{std::vector<int> v({ 1, 2, 3 });for (const auto& value : v) {std::cout << value << " ";}std::cout << '\n';std::vector<int> destination(3);std::reverse_copy(std::begin(v), std::end(v), std::begin(destination));for (const auto& value : destination) {std::cout << value << " ";}std::cout << '\n';return 0;
}

GitHub: https://github.com/fengbingchun/Messy_Test

相关文章:

真相!30K拿到互联网大厂offer,网友:我服了!

最近笔者在知乎刷到一个帖子&#xff0c;其中&#xff0c;这条回答让人印象深刻&#xff1a;其实&#xff0c;最近几年人工智能大火&#xff0c;其中深度学习岗位的薪酬爆增&#xff0c;BAT大厂高薪招聘AI人才&#xff0c;收到的简历却寥寥无几&#xff1f;究竟是大厂岗位要求高…

OracleDesigner学习笔记1――安装篇

OracleDesigner学习笔记1――安装篇 QQ&#xff1a;King MSN&#xff1a;qiutianwhmsn.com Email&#xff1a;qqkinggmail.com 一&#xff0e; 前言 Oracle是当今最流行的关系型数据库之一&#xff0c;和很多朋友一样&#xff0c;我也是一个Oracle的爱好者&#xff0c;从…

C++/C++11中std::queue的使用

std::queue: 模板类queue定义在<queue>头文件中。队列(Queue)是一个容器适配器(Container adaptor)类型&#xff0c;被特别设计用来运行于FIFO(First-in first-out)场景&#xff0c;在该场景中&#xff0c;只能从容器一端添加(Insert)元素&#xff0c;而在另一端提取(Ext…

常见的http状态码(Http Status Code)

常见的http状态码&#xff1a;&#xff08;收藏学习&#xff09; 2**开头 &#xff08;请求成功&#xff09;表示成功处理了请求的状态代码。 200 &#xff08;成功&#xff09; 服务器已成功处理了请求。 通常&#xff0c;这表示服务器提供了请求的网页。201 &#xff08;已创…

“不给钱就删库”的勒索病毒, 程序员该如何防护?

作者 | 阿木&#xff0c;王洪鹏&#xff0c;运营有个人公众号新新生活志。目前任职网易云计算技术部高级工程师&#xff0c;近3年云计算从业经验&#xff0c;爱读书、爱写作、爱技术。责编 | 郭芮来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;近期一家名为ProPub…

ruby实时查看日志

(文章是从我的个人主页上粘贴过来的&#xff0c; 大家也可以访问我的主页 www.iwangzheng.com) 在调试代码的时候&#xff0c;把日志文件打开&#xff0c;边操作边调试能很快帮助我们发现系统中存在的问题。 $tail rails_2014_03_03.log -f转载于:https://www.cnblogs.com/iw…

干货 | OpenCV看这篇就够了,9段代码详解图像变换基本操作

作者 | 王天庆&#xff0c;长期从事分布式系统、数据科学与工程、人工智能等方面的研究与开发&#xff0c;在人脸识别方面有丰富的实践经验。现就职某世界100强企业的数据实验室&#xff0c;从事数据科学相关技术领域的预研工作。来源 | 大数据&#xff08;ID&#xff1a;hzdas…

C++/C++11中std::priority_queue的使用

std::priority_queue:在优先队列中&#xff0c;优先级高的元素先出队列&#xff0c;并非按照先进先出的要求&#xff0c;类似一个堆(heap)。其模板声明带有三个参数&#xff0c;priority_queue<Type, Container, Functional>, 其中Type为数据类型&#xff0c;Container为…

left join 和 left outer join 的区别

老是混淆&#xff0c;做个笔记&#xff0c;转自&#xff1a;https://www.cnblogs.com/xieqian111/p/5735977.html left join 和 left outer join 的区别 通俗的讲&#xff1a; A left join B 的连接的记录数与A表的记录数同 A right join B 的连接的记录数与…

php减少损耗的方法之一 缓存对象

即把实例后的对象缓存起来(存入变量)&#xff0c;当需要再次实例化时&#xff0c;先去缓存里查看是否存在。存在则返回。否则实例化。转载于:https://www.cnblogs.com/zuoxiaobing/p/3581139.html

windows10 vs2013控制台工程中添加并编译cuda8.0文件操作步骤

一般有两种方法可以在vs2013上添加运行cuda8.0程序&#xff1a;一、直接新建一个基于CUDA8.0的项目&#xff1a;如下图所示&#xff0c;点击确定后即可生成test_cuda项目&#xff1b;默认会自动生成一个kernel.cu文件&#xff1b;默认已经配置好Debug/Release, Win32/x64环境&a…

算法人必懂的进阶SQL知识,4道面试常考题

&#xff08;图片付费下载自视觉中国&#xff09;作者 | 石晓文来源&#xff5c;小小挖掘机&#xff08;ID&#xff1a;wAlsjwj&#xff09;近期在不同群里有小伙伴们提出了一些在面试和笔试中遇到的Hive SQL问题&#xff0c;Hive作为算法工程师的一项必备技能&#xff0c;在面…

007-迅雷定时重启AutoHotkey脚本-20190411

;; 定时重启迅雷.ahk,;;~ 2019年04月11日;#SingleInstance,forceSetWorkingDir,%A_ScriptDir%DetectHiddenWindows,OnSetTitleMatchMode,2#Persistent ;让脚本持久运行&#xff08;即直到用户关闭或遇到 ExitApp&#xff09;。#NoEnv;~ #NoTrayIcon Hotkey,^F10,ExitThisApp lo…

关于ExtJS在使用下拉列表框的二级联动获取数据

2019独角兽企业重金招聘Python工程师标准>>> 使用下拉列表框的二级联动获取数据&#xff0c;如果第一个下拉列表框有默认值时&#xff0c;需要设置fireEvent执行select事件 示例&#xff1a; var combo Ext.getCmp("modifyBuildCom"); combo.setValue(re…

C++中std::sort/std::stable_sort/std::partial_sort的区别及使用

某些算法会重排容器中元素的顺序&#xff0c;如std::sort。调用sort会重排输入序列中的元素&#xff0c;使之有序&#xff0c;它默认是利用元素类型的<运算符来实现排序的。也可以重载sort的默认排序&#xff0c;即通过sort的第三个参数&#xff0c;此参数是一个谓词(predic…

阿里云智能 AIoT 首席科学家丁险峰:阿里全面进军IoT这一年 | 问底中国IT技术演进...

作者 | 屠敏受访者 | 丁险峰来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;「忽如一夜春风来&#xff0c;千树万树梨花开。」从概念的流行、至科技巨头的相继入局、再到诸多应用的落地&#xff0c;IoT 的发展终于在万事俱备只欠东风的条件下真正地迎来了属于自己的…

eBCC性能分析最佳实践(1) - 线上lstat, vfs_fstatat 开销高情景分析...

Guide: eBCC性能分析最佳实践&#xff08;0&#xff09; - 开启性能分析新篇章eBCC性能分析最佳实践&#xff08;1&#xff09; - 线上lstat, vfs_fstatat 开销高情景分析eBCC性能分析最佳实践&#xff08;2&#xff09; - 一个简单的eBCC分析网络函数的latency敬请期待...0. I…

spring-data-mongodb必须了解的操作

http://docs.spring.io/spring-data/data-mongo/docs/1.0.0.M5/api/org/springframework/data/mongodb/core/MongoTemplate.html 在线api文档 1关键之识别 KeywordSampleLogical resultGreaterThanfindByAgeGreaterThan(int age){"age" : {"$gt" : age}}Le…

旷视张祥雨:高效轻量级深度模型的研究和实践 | AI ProCon 2019

演讲嘉宾 | 张祥雨&#xff08;旷视研究院主任研究员、基础模型组负责人&#xff09;编辑 | Just出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;基础模型是现代视觉识别系统中一个至关重要的关注点。基础模型的优劣主要从精度、速度或功耗等角度判定&#xff0c;如何…

Python脱产8期 Day02

一 语言分类 机器语言&#xff0c;汇编语言&#xff0c;高级语言&#xff08;编译和解释&#xff09; 二 环境变量 1、配置环境变量不是必须的2、配置环境变量的目的&#xff1a;为终端提供执行环境 三Python代码执行的方式 1交互式&#xff1a;.控制台直接编写运行python代码 …

分别用Eigen和C++(OpenCV)实现图像(矩阵)转置

(1)、标量(scalar)&#xff1a;一个标量就是一个单独的数。(2)、向量(vector)&#xff1a;一个向量是一列数&#xff0c;这些数是有序排列的&#xff0c;通过次序中的索引&#xff0c;可以确定每个单独的数。(3)、矩阵(matrix)&#xff1a;矩阵是一个二维数组&#xff0c;其中的…

Linux基础优化

***************************************************************************************linux系统的优化有很多&#xff0c;我简单阐述下我经常优化的方针&#xff1a;记忆口诀&#xff1a;***********************一清、一精、一增&#xff1b;两优、四设、七其他。*****…

数据集cifar10到Caffe支持的lmdb/leveldb转换的实现

在 http://blog.csdn.net/fengbingchun/article/details/53560637 对数据集cifar10进行过介绍&#xff0c;它是一个普通的物体识别数据集。为了使用Caffe对cifar10数据集进行train&#xff0c;下面实现了将cifar10到lmdb/leveldb的转换实现&#xff1a;#include "funset.h…

计算两个时间的间隔时间是多少

/*** 计算两个时间间隔* param startTime 开始时间* param endTime 结束时间* param type 类型&#xff08;1&#xff1a;相隔小时 2&#xff1a;&#xff09;* return*/public static int compareTime(String startTime, String endTime, int type) {if (endTime nul…

作为西二旗程序员,我是这样学习的.........

作为一名合格的程序员&#xff0c;需要时刻保持对新技术的敏感度&#xff0c;并且要定期更新自己的技能储备&#xff0c;是每个技术人的日常必修课。但要做到这一点&#xff0c;知乎上的网友说最高效的办法竟然是直接跟 BAT 等一线大厂取经。讲真的&#xff0c;BAT大厂的平台是…

2月国内搜索市场:360继续上升 百度下降0.62%

IDC评述网&#xff08;idcps.com&#xff09;03月06日报道&#xff1a;根据CNZZ数据显示&#xff0c;在国内搜索引擎市场中&#xff0c;百度在2014年2月份所占的份额继续被蚕食&#xff0c;环比1月份&#xff0c;下降了0.62%&#xff0c;为60.50%。与此相反&#xff0c;360搜索…

不止于刷榜,三大CV赛事夺冠算法技术的“研”与“用”

&#xff08;由AI科技大本营付费下载自视觉中国&#xff09;整理 | Jane出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;在 5 个月时间里&#xff08;5月-9月&#xff09;&#xff0c;创新工场旗下人工智能企业创新奇智连续在世界顶级人脸检测竞赛 WIDER …

Ubuntu14.04上编译指定版本的protobuf源码操作步骤

Google Protobuf的介绍可以参考 http://blog.csdn.net/fengbingchun/article/details/49977903 &#xff0c;这里介绍在Ubuntu14.04上编译安装指定版本的protobuf的操作步骤&#xff0c;这里以2.4.1为例&#xff1a;1&#xff0e; Ubuntu14.04上默认安装的是2.5.0&#xff0c;…

Linux下,各种解压缩命令集合

Linux下&#xff0c;各种解压缩命令集合tar xvfj lichuanhua.tar.bz2tar xvfz lichuanhua.tar.gztar xvfz lichuanhua.tgztar xvf lichuanhua.tarunzip lichuanhua.zip.gz解压 1&#xff1a;gunzip FileName.gz解压 2&#xff1a;gzip -d FileName.gz压缩&#xff1a;gzip File…

gtest使用初级指南

之前在 http://blog.csdn.net/fengbingchun/article/details/39667571 中对google的开源库gtest进行过介绍&#xff0c;现在看那篇博文&#xff0c;感觉有些没有说清楚&#xff0c;这里再进行总结下&#xff1a;Google Test是Google的开源C单元测试框架&#xff0c;简称gtest。…