iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++11的移动迭代器是什么
  • 168
分享到

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

2023-06-19 10:06:27 168人浏览 泡泡鱼
摘要

本篇内容介绍了“c++11的移动迭代器是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!劳苦功高的曳光弹类为了说明移动迭代器还是继续请出曳

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

劳苦功高的曳光弹类

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

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

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

移交单个数据

效率最低的方式

代码:

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

程序输出:

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

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

通过移动来提高效率

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

代码:

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

程序输出:

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

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

移交多个数据

简单做法

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

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

程序输出:

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

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

移动迭代器

代码实例:

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

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

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

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

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

程序输出:

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

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

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

--结束END--

本文标题: C++11的移动迭代器是什么

本文链接: https://www.lsjlt.com/news/295609.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++11的移动迭代器是什么
    本篇内容介绍了“C++11的移动迭代器是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!劳苦功高的曳光弹类为了说明移动迭代器还是继续请出曳...
    99+
    2023-06-19
  • Python中迭代和迭代器是什么
    本篇文章给大家分享的是有关Python中迭代和迭代器是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。可迭代一个对象,物理或者虚拟存储的序列。list,tuple,strin...
    99+
    2023-06-17
  • C#迭代器局部变量是什么
    这篇文章主要介绍了C#迭代器局部变量是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。看看***的测试,是不是不管具体的集合如何改变,遍历代码都非常稳定?而且扩展新的集合类...
    99+
    2023-06-17
  • C++11右值引用和移动语义的方法是什么
    本文小编为大家详细介绍“C++11右值引用和移动语义的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++11右值引用和移动语义的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。左值引用与右值...
    99+
    2023-07-05
  • C++11中移动构造函数案例代码
    目录1. 拷贝构造函数中的深拷贝问题2. C++移动构造函数(移动语义的具体实现)1. 拷贝构造函数中的深拷贝问题 在 C++ 98/03 标准中,如果想用其它对象初始化一个同类的新...
    99+
    2023-01-04
    C++11移动构造函数 C++11构造函数 C++构造函数
  • JavaScript中可迭代对象与迭代器的作用是什么
    今天就跟大家聊聊有关JavaScript中可迭代对象与迭代器的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Lazy evaluation...
    99+
    2024-04-02
  • mybatis迭代器的用法是什么
    MyBatis中迭代器的用法是用于处理集合或数组的元素。它可以简化对集合或数组元素的遍历和操作。 在MyBatis的Mapper X...
    99+
    2024-02-29
    mybatis
  • C++迭代器与二分查找方法是什么
    本篇内容主要讲解“C++迭代器与二分查找方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++迭代器与二分查找方法是什么”吧!boolsearch_value_loop(std::vec...
    99+
    2023-06-04
  • C++11移动构造函数的使用
    目录一、引言二、左值和右值三、深拷贝构造函数四、右值引用五、移动构造函数六、std::move()七、参考资料一、引言 移动构造函数是什么?先举个例子,你有一本书,你不想看,但我很想...
    99+
    2024-04-02
  • php迭代器iterator的作用是什么
    这篇文章主要介绍“php迭代器iterator的作用是什么”,在日常操作中,相信很多人在php迭代器iterator的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php迭代器iterator的作用...
    99+
    2023-06-20
  • C++11怎么移动构造函数通常
    这篇文章主要讲解了“C++11怎么移动构造函数通常”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++11怎么移动构造函数通常”吧!不会抛出异常的移动构造函数拷贝构造函数通常伴随着内存分配操...
    99+
    2023-06-19
  • C++11的long long是什么
    这篇文章主要讲解了“C++11的long long是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++11的long long是什么”吧!long long类型数据类型long lon...
    99+
    2023-06-19
  • java迭代器遍历的方法是什么
    Java迭代器遍历的方法是使用while循环和迭代器的`hasNext()`和`next()`方法进行遍历。具体步骤如下:1. 创建...
    99+
    2023-08-11
    java
  • java迭代器实现的原理是什么
    Java迭代器的实现原理是基于设计模式中的迭代器模式。迭代器模式是一种行为型模式,它提供了一种方法来顺序访问一个聚合对象中的元素,而...
    99+
    2023-10-10
    java
  • 什么是php聚合式迭代器
    这篇文章主要介绍“什么是php聚合式迭代器”,在日常操作中,相信很多人在什么是php聚合式迭代器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是php聚合式迭代器”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-20
  • java迭代器的基本概念是什么
    这篇文章主要介绍java迭代器的基本概念是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。本教程操...
    99+
    2023-06-14
  • php迭代器的工作原理是什么
    这篇文章主要讲解了“php迭代器的工作原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php迭代器的工作原理是什么”吧!工作原理在第一次迭代之前,运行iterator::rewind...
    99+
    2023-06-20
  • python中map迭代器的作用是什么
    在Python中,`map()`函数是一个迭代器函数,它的作用是将一个函数应用到一个或多个可迭代对象的元素上,生成一个新的可迭代对象...
    99+
    2023-09-28
    python
  • java迭代器iterator指的是什么意思
    这篇文章给大家分享的是有关java迭代器iterator指的是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的,可重复的;2、Que...
    99+
    2023-06-14
  • python什么是迭代函数
    python中的迭代函数有next和iter两个iter:iter()函数的作用是用来生成迭代器。next:next()函数的作用是返回迭代器的下一个项目。iter()函数语法:iter(object[, sentinel])参数:obje...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作