1、创建Vector对象Vector()。默认的构造函数。Vector(ssize_t capacity)。创建Vector对象,并设置容量。Vector(const Vector &other) 。用一个已存在的Vector对象创建另一个Vector对象,其中&other是左值引用参数传递。Vec...
分类:
其他好文 时间:
2014-10-18 20:55:29
阅读次数:
158
前面两节,说明了右值引用和它的作用。下面通过一个string类的编写,来说明右值引用的使用。 相对于C++98,主要是多了移动构造函数和移动赋值运算符。 先给出一个简要的声明: class String
{
public: String(); String(const char *s); //转化语...
分类:
编程语言 时间:
2014-10-17 21:40:15
阅读次数:
207
数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte,short,int,long,c...
分类:
其他好文 时间:
2014-10-17 15:10:29
阅读次数:
198
上节我们提出了右值引用,可以用来区分右值,那么这有什么用处? 问题来源 我们先看一个C++中被人诟病已久的问题: 我把某文件的内容读取到vector中,用函数如何封装? 大部分人的做法是: void readFile(const string &filename, vector &words)
{ ...
分类:
移动开发 时间:
2014-10-17 00:49:13
阅读次数:
352
C++98中规定了左值和右值的概念,但是一般程序员不需要理解的过于深入,因为对于C++98,左值和右值的划分一般用处不大,但是到了C++11,它的重要性开始显现出来。 C++98标准明确规定: 左值是可以取得内存地址的变量。 非左值即为右值。 从这里可以看出,可以执行&取地址的就是左值,其他的就是右...
分类:
编程语言 时间:
2014-10-16 23:37:53
阅读次数:
579
Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte, short, int, long, ch...
分类:
其他好文 时间:
2014-10-14 00:38:47
阅读次数:
340
C++引用现在分为左值引用(能取得其地址)和右值引用(不能取得其地址)。其实很好理解,左值引用中的左值一般指的是出现在等号左边的值(带名称的变量,带*号的指针等一类的数据),程序能对这样的左值进行引用获得其地址;右值引用中的右值一般指的就是出现在等号右边的值(右值引用:常量、表达式、函数非左值引用的...
分类:
移动开发 时间:
2014-09-24 15:50:57
阅读次数:
258
1、右值引用引入的背景临时对象的产生和拷贝所带来的效率折损,一直是C++所为人诟病的问题。但是C++标准允许编译器对于临时对象的产生具有完全的自由度,从而发展出了Copy Elision、RVO(包括NRVO)等编译器优化技术,它们可以防止某些情况下临时对象产生和拷贝。下面简单地介绍一下Copy E...
分类:
编程语言 时间:
2014-09-21 01:09:39
阅读次数:
405
http://jxq.me/2012/06/06/%E8%AF%91%E8%AF%A6%E8%A7%A3c%E5%8F%B3%E5%80%BC%E5%BC%95%E7%94%A8/#thbeckerC++0x标准出来很长时间了,引入了很多牛逼的特性[1]。其中一个便是右值引用,Thomas Beck...
分类:
编程语言 时间:
2014-09-20 23:44:19
阅读次数:
354
# 转自 IBM 编译器中国开发团队的《C++11中的string - atoi/itoa》 在C++11中,由于右值引用的引入,常为人所诟病std::string的性能问题得到了很大的改善。另外一方面,我们也可以看到新语言为std::string类增加了...
分类:
编程语言 时间:
2014-09-19 15:48:45
阅读次数:
311