**如果赋值操作=左右值相等,即自我赋值,传统做法:
证同策略:**
为防止new异常,需要在new之前不删除原先的引用:
swap技术的运用:
当传递的是值不是引用时同样可用swap:
注意:...
分类:
其他好文 时间:
2015-05-18 20:49:32
阅读次数:
162
关于图层的几个坐标系。
对于ios来说,坐标系的(0,0)点在左上角,就是越往下,Y值越大。越往右,X值越大。
一个图层的frame,它是position,bounds,anchorPoint和transform属性的一部分。
设置一个新的frame将会相应的改变图层的position和bounds,但是frame本身并没有保存。
position:是一个CGP...
分类:
移动开发 时间:
2015-05-15 17:48:53
阅读次数:
197
左值和右值的定义在C++中,能够放到赋值操作符=左边的是左值,能够放到赋值操作符右边的是右值。有些变量既能够当左值又能够当右值。进一步来讲,左值为Lvalue,事实上L代表Location,表示在内存中能够寻址,能够给它赋值(常量const类型也能够寻址,可是不能赋值),Rvalue中的R代表Rea...
分类:
编程语言 时间:
2015-05-15 15:04:27
阅读次数:
161
1.首先区分左值和右值 左值是表达式结束后依然存在的持久对象 右值是表达式结束时就不再存在的临时对象 便捷方法:对表达式取地址,如果能,则为左值,否则为右值举例: int a = 10 int b = 20 int *pFlag = &a vector vctTemp vctTemp.push_b....
分类:
编程语言 时间:
2015-05-12 20:51:59
阅读次数:
135
在理解指针表达式之前先有一个概念就是“左值”和“右值”,对于左值就是可以出现在赋值符号左边的东西,右值就是那些可以出现在赋值符号右边的东西。进一步抽象可以这样理解:左值应该可以作为一个地址空间用来存放一个值,而右值可以作为一个值来处理,当然需要说明的是有些是既可以作为左值也可以作为右值的,例如:定义a为一个指针指向b,那么*a既可以作为一个右值即地址b中存放的数据,也可以作为一个左值即表示b的地址...
分类:
编程语言 时间:
2015-05-09 08:55:55
阅读次数:
133
题目大意:有n条长度为1的线段,确定他们的起点,必须是整数,使得第i条线段在[ri,di]之间。最后输出空隙的最小值解题思路:维护一个最左值和最右值,分别代表不存在间隙的线段所能填充的区间,如果要在下一个区间取线段,如果线段在所维护的区间之内,那么就表示从该维护区间内取线段,可以构成不间断的线段#include
#include
#include<algorithm...
分类:
其他好文 时间:
2015-05-05 23:56:18
阅读次数:
225
4.1 基础左值和右值当一个对象被用作左值的时候,使用的是对象的内存空间。当一个对象被用作右值的使用,使用的是对象的内存数值。左值的同时,也可以当做右值,从而使用其值。但是右值,不一定能作为左值。warming赋值运算需要一个左值作为左侧运算对象,同时,也将返回一个左值。decltype作用于左值,...
分类:
其他好文 时间:
2015-05-04 22:02:36
阅读次数:
129
练习1-39是简单题目,练习40开始做中级题目。找到一个序列中的两个序号,要求该序号对应的两个数和为指定值。【思路】1.暴力解决:大循环遍历作为左数,小循环从下一个开始遍历作为右数,时间复杂度是O(n^2)。——竟然不让我通过%>_实现,序号(左值)是原序列中的值,保存的值(右值)是原序列的序号,每...
分类:
其他好文 时间:
2015-05-04 17:42:51
阅读次数:
124
我们定义了一个可以传入右值引用的构造函数的类B,在使用std::move的时候,我们非常容易犯一个错误。看下面的代码:class B{public: B() :s(10), ptr(new int[s]) { std::cout << "default constructor...
分类:
编程语言 时间:
2015-05-02 21:58:54
阅读次数:
149