C++ move()函数及priority_queue队列使用记录 – ECHO
最近刷leetcode题,使用了move()函数及优先队列(堆)priority_queue数据结构,记录一下!
1.move函数
move(obj)函数的功能是把obj当做右值处理,可以应用在对象的移动上。
右值引用
为了支持移动操作,新标准引入了一种新的引入类型——右值引用,所谓右值引用就是必须绑定到右值的引用。通过&&而不是&来获得右值引用。
注意,如果仅仅是定义右值引用,那么obj本身不会被移走,在作为参数时会发生obj被移走:如下:
string str = "test"; string&& r = move(str); cout<< r <<endl; cout<< str <<endl; string t(r); cout<< t <<endl; cout<< str <<endl;