C++ &&符号的作用
void pushBack(T& data){
if(size>=capacity)
return;
addr[size] = data;
++size;
}
void pushBack(T&& data){
if(size>=capacity)
return;
addr[size] = data;
++size;
}
假设上面两个函数是你自定义的容器类里的插入元素函数,第一个pushBack的参数类型后有一个 &
,代表传参只能传左值;第二个pushBack是 &&
,是C++一个新特性,代表只能对右值取引用。 举个例子:
int a = 10,b = 20,c = 30,d = 40;
//传入左值
array.pushBack(a);
array.pushBack(b);
array.pushBack(c);
array.pushBack(d);
//传入右值
array.pushBack(50);
array.pushBack(60);
array.pushBack(70);
array.pushBack(80);