标签:
{
int tmp=a;
a=a+1;
return tmp;
}a++是右值。{
a=a+1;
return &a;
}显然++a的效率高。#include<iostream>
void print_lvalue(int& i)//左值
{
std::cout << "Lvalue:" << i << std::endl;
}
void print_rvalue(int&& i)//右值
{
std::cout << "Rvalue:" << i << std::endl;
}
int main()
{
int i = 0;
print_lvalue(i);
print_rvalue(1);
//print_lvalue(1)会出错
//print_lvalue(const int& i)能够使用print_lvalue(1)
return 0;
}#include<iostream>
void print_value(int& i)//左值
{
std::cout << "Lvalue:" << i << std::endl;
}
void print_value(int&& i)//右值
{
std::cout << "Rvalue:" << i << std::endl;
}
int main()
{
int i = 10;
print_value(i);
print_value(std::move(i));
return 0;
}void swap(T& a, T& b)
{
T tmp = std::move(a);
a = std::move(b);
b = std::move(tmp);
}避免了3次拷贝。标签:
原文地址:http://www.cnblogs.com/mengfanrong/p/4505745.html