// // 3.5.move.semantics.cpp // modern c++ tutorial // // created by changkun at changkun.de // https://github.com/changkun/modern-cpp-tutorial // #include // std::cout #include // std::move #include // std::vector #include // std::string int main() { std::string str = "Hello world."; std::vector v; // use push_back(const T&), copy v.push_back(str); // "str: Hello world." std::cout << "str: " << str << std::endl; // use push_back(const T&&), no copy // the string will be moved to vector, and therefore std::move can reduce copy cost v.push_back(std::move(str)); // str is empty now std::cout << "str: " << str << std::endl; return 0; }