右值引用示例
Posted wisdomroc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了右值引用示例相关的知识,希望对你有一定的参考价值。
int main(int argc, char *argv[]) { int t = 10; //t: 左值 int t2 = t + 1; //t: 右值 int a = 1; const int &b = a + 1; // 左值引用 // int &b = a + 1; // 错误 cout << b << " " << a << endl; int c = 1; int &&c2 = c + 1; // 右值引用 cout << c2 << " " << c << endl; int d = 1; int &&dd = std::move(d); // 直接把 左值或者右值 转换成 右值引用 cout << dd << " " << endl; // 注意,在调用完std::move之后,不能再使用d, 只能用dd string s = "hello"; vector<string> v ; v.push_back(std::move(s)); // 调用移动构造函数,掏空 s, 掏空后,最好不要使用s了 !! cout << v.front() << endl; cout << "s: " << s << endl; return 0; }
std::move()的使用
以上是关于右值引用示例的主要内容,如果未能解决你的问题,请参考以下文章