千家信息网

C++11的移动迭代器是什么

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,本篇内容介绍了"C++11的移动迭代器是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!劳苦功高的
千家信息网最后更新 2025年12月01日C++11的移动迭代器是什么

本篇内容介绍了"C++11的移动迭代器是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

劳苦功高的曳光弹类

为了说明移动迭代器还是继续请出曳光弹类:

类本身很简单,就是在各个构造函数,赋值运算符输出log信息。

移交单个数据

效率最低的方式

代码:

程序输出:

可以看出,执行了两次构造函数和一次赋值运算。通过观察代码可以看出,拷贝动作发生了两次。

通过移动来提高效率

我们当然可以通过调用拷贝构造函数来减少赋值运算,但是C++11之后,我们就可以使用move操作来更加彻底地提高程序执行的效率:

代码:

程序输出:

可以看出,执行了一次构造函数和一次移动构造函数。通过观察代码可以看出,拷贝动作只发生了一次。这种改变无疑可以大大提高代码执行的效率。

移交多个数据

简单做法

如果不作任何思考,代码大致如下:

程序输出:

构造函数,默认构造函数,拷贝构造函数分别被执行4次。当然了,对应的string拷贝操作也同时进行。

移动迭代器

代码实例:

问题和单个实例的情况类似,多余的操作有两个:默认构造函数和string拷贝。对于上述问题,C++11给出了如下答案:

代码首先使用allocator预先取得保存对象的内存空间而不调用初始化函数。

然后使用unitialize_copy来迭代调用每个对象的构造函数。这里又存在两种情况:如果只是简单地使用通常的迭代器,那么被调用的将是拷贝构造函数;本例中使用的make_move_iterator适配器告诉编译器迭代对象是可以移动的,因此调用的是移动构造函数。

这种可以生成右值引用的迭代器就是移动迭代器。

程序输出:

可以看出,实现了和单个实例同样的高效率。

"C++11的移动迭代器是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

函数 移动 迭代 代码 拷贝 输出 程序 效率 单个 实例 对象 情况 运算 内容 动作 就是 数据 曳光弹 更多 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 研究生 数据库 工作 西子奥迪斯服务器杳故障 绝地求生高级服务器是什么 智能科技互联网产业园 收费站网络安全体系 互联网科技市值前十 访问服务器网页接收文件 计算机网络安全保密管理情况 我的世界服务器包含非法字母 服务器能用两个显卡吗 明日之后官服哪个服务器人比较多 网络安全运营中心建设 打开数据库后电脑开不了机 filiation 软件开发 侠客风云传怎么更换服务器 易迅捷互联网科技有限公司 镇江软件开发工资待遇 5g网络技术的最新消息 服务器上复制数据集 方舟服务器怎么改成英文 网络安全数据分析技术 专升本计算机导论数据库 尚硅谷数据库创建 vs打开数据库步骤代码 奇葩战斗家有多少个服务器 科技网和教育网也是互联网吗 网络安全广播稿小学生 陈志泊数据库第4版pdf 服务器坏了无法开机怎么办 帝国时代4哪个服务器人多
0