码迷,mamicode.com
首页 > 移动开发 > 详细

STL的移动算法

时间:2015-03-19 18:33:03      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:c++   程序员   面试   移动   

要在自定义类型中使用移动算法,需要在元素中提供移动赋值运算符,移动赋值运算符和std::move()详见《c++高级编程》第9章


class mystring
{
public:
	string mstr;

	mystring(){}
	mystring(const string &str) :mstr(str){}

	mystring& operator=(mystring&& rhs)//<span style="font-size:18px;">移动赋值运算符</span>
	{
		if (this == &rhs)
			return *this;
		mstr = std::move(rhs.mstr);
		return *this;
	}
};

主函数:

vector<int> n = {-3,9,-6,3,8,7 };
	vector<mystring> sfrom = { mystring("a"), mystring("b"), mystring("c") };
	
	vector<mystring> sto(3);
	move(sfrom.begin(), sfrom.end(), sto.begin());//<span style="font-size:18px;">移动算法</span>
	for (auto &t : sto)
		cout << t.mstr << "\t";
	cout << endl;

	for (auto &t : sfrom)
		cout << t.mstr << "\t";
	cout << endl;


STL的移动算法

标签:c++   程序员   面试   移动   

原文地址:http://blog.csdn.net/bupt8846/article/details/44460069

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!