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