码迷,mamicode.com
首页 >  
搜索关键字:移动语义    ( 62个结果
unique_ptr_c++11
unique_ptr 替代了原来的auto_ptr,指向对象具有唯一性,即同一时间只能有unique_ptr指向给定对象(和auto_ptr不同是禁止拷贝语义,通过移动语义替代) unique_ptr对象生命周期与其作用域范围保持一致,从创建直至其离开作用域 unique_ptr 指针和其所绑定对象 ...
分类:编程语言   时间:2018-05-18 14:07:18    阅读次数:177
从4行代码看右值引用
看到的文章,觉得很不错,保留一下,不知是不是原文的地址:https://www.cnblogs.com/qicosmos/p/4283455.html 从4行代码看右值引用 概述 右值引用的概念有些读者可能会感到陌生,其实他和C++98/03中的左值引用有些类似,例如,c++98/03中的左值引用是 ...
分类:其他好文   时间:2018-05-12 21:35:39    阅读次数:177
C++11的value category(值类别)以及move semantics(移动语义)
C++11之前value categories只有两类,lvalue和rvalue,在C++11之后出现了新的value categories,即prvalue, glvalue, xvalue。不理解value categories可能会让我们遇到一些坑时不知怎么去修改,所以理解value cat... ...
分类:移动开发   时间:2018-04-19 18:19:09    阅读次数:322
移动构造函数和移动赋值
一、概述 移动构造函数可以弥补拷贝构造函数的空缺。 移动语义,简单来说解决的是各种情形下对象的资源所有权转移的问题。而在C++11之前,移动语义的缺失是C++饱受诟病的问题之一。 举个栗子。 问题一:如何将大象放入冰箱?答案是众所周知的。首先你需要有一台特殊的冰箱,这台冰箱是为了装下大象而制造的。你 ...
分类:移动开发   时间:2018-02-27 23:27:47    阅读次数:253
智能指针原理及实现(2)- unique_ptr
只允许基础指针的一个所有者。 可以移到新所有者(具有移动语义),但不会复制或共享(即我们无法得到指向同一个对象的两个unique_ptr)。 替换已弃用的 auto_ptr。 相较于 boost::scoped_ptr。 unique_ptr 小巧高效;大小等同于一个指针,支持 rvalue 引用, ...
分类:其他好文   时间:2018-02-25 14:42:25    阅读次数:232
Part6 数组、指针与字符串 6.12 对象复制与移动
1 深层复制与浅层复制浅层复制:实现对象间数据元素的一一对应复制。深层复制:当被复制的对象数据成员是指针类型时,不是复制该指针成员本身,而是将指针所指对象进行复制。 2 移动构造C++11 标准中提供了一种新的构造方法——移动构造。C++11 引入移动语义: 源对象资源的控制权全部交给目标对象 当临 ...
分类:移动开发   时间:2017-12-14 04:08:51    阅读次数:124
c++11 移动语义
c++11 移动语义 ...
分类:移动开发   时间:2017-11-05 15:58:20    阅读次数:153
第15课 右值引用(2)_std::move和移动语义
1. std::move (1)std::move的原型 (2)std::move的作用 ①std::move函数的本质就是强制转换,它无条件地将参数转换为把一个右值引用,又由于函数返回的右值引用(匿名对象)是一个右值。因此,std::move所做的所有事情就是转换它的参数为一个右值。继而用于移动语 ...
分类:移动开发   时间:2017-10-27 01:19:38    阅读次数:250
c++ 11 移动语义、std::move 左值、右值、将亡值、纯右值、右值引用
为什么要用移动语义 先看看下面的代码 以上代码拷贝构造函数会被调用两次,一次是从GetTemp函数中有HugeMem()生成的一个临时值用作返回值,另外一次则由临时值构造出main中的变量a。析构函数调用了三次。这个过程如果指针指向非常大的内存时拷贝构造 的代价相当昂贵。而令人堪忧的是:临时变量的生 ...
分类:移动开发   时间:2017-10-14 01:33:44    阅读次数:254
c++ 11 std::move 左值,右值,将亡值,纯右值,右值引用
为什么要用移动语义 它是为了减少对象拷贝开销而存在的,具体请看本文后面几节代码 左值和右值 判断左值和右值的方法有两种 1.在等号左边的值就称为左值而在等号右边的称为右值 2.另外在c++中还有一种判别方法就是可以取地址,有名的就是左值,不能取地址,没有名的就是右值 例如: a = b + c a在 ...
分类:编程语言   时间:2017-10-13 10:28:37    阅读次数:215
62条   上一页 1 2 3 4 5 ... 7 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!