zoukankan      html  css  js  c++  java
  • STL的移动算法

    要在自己定义类型中使用移动算法。须要在元素中提供移动赋值运算符。移动赋值运算符和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 << "	";
    	cout << endl;
    
    	for (auto &t : sfrom)
    		cout << t.mstr << "	";
    	cout << endl;


  • 相关阅读:
    elasticsearch api
    kaili camera
    mysql create db utf8 character
    npm run-script
    d-link kvm 关闭声音
    setInterval js
    jpa datasource config
    mvn添加本地jar
    Sublime Text 2 中文包
    初遇ping++
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5208167.html
Copyright © 2011-2022 走看看