#include <iostream>
#include <utility>
#include <vector>
#include <string>
int main()
{
std::string str = "Hello";
std::vector<std::string> v;
//调用常规的拷贝构造函数,新建字符数组,拷贝数据
v.push_back(str);
std::cout << "After copy, str is \"" << str << "\"\n";
//调用移动构造函数,掏空str,掏空后,最好不要使用str
v.push_back(std::move(str));
std::cout << "After move, str is \"" << str << "\"\n";
std::cout << "The contents of the vector are \"" << v[0]
<< "\", \"" << v[1] << "\"\n";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dXRpbGl0eT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHN0cmluZz4KaW50IG1haW4oKQp7CiAgICBzdGQ6OnN0cmluZyBzdHIgPSAiSGVsbG8iOwogICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHY7CiAgICAvL+iwg+eUqOW4uOinhOeahOaLt+i0neaehOmAoOWHveaVsO+8jOaWsOW7uuWtl+espuaVsOe7hO+8jOaLt+i0neaVsOaNrgogICAgdi5wdXNoX2JhY2soc3RyKTsKICAgIHN0ZDo6Y291dCA8PCAiQWZ0ZXIgY29weSwgc3RyIGlzIFwiIiA8PCBzdHIgPDwgIlwiXG4iOwogICAgLy/osIPnlKjnp7vliqjmnoTpgKDlh73mlbDvvIzmjo/nqbpzdHLvvIzmjo/nqbrlkI7vvIzmnIDlpb3kuI3opoHkvb/nlKhzdHIKICAgIHYucHVzaF9iYWNrKHN0ZDo6bW92ZShzdHIpKTsKICAgIHN0ZDo6Y291dCA8PCAiQWZ0ZXIgbW92ZSwgc3RyIGlzIFwiIiA8PCBzdHIgPDwgIlwiXG4iOwogICAgc3RkOjpjb3V0IDw8ICJUaGUgY29udGVudHMgb2YgdGhlIHZlY3RvciBhcmUgXCIiIDw8IHZbMF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiXCIsIFwiIiA8PCB2WzFdIDw8ICJcIlxuIjsKfQ==