【发布时间】:2015-08-03 16:58:44
【问题描述】:
我已经阅读了移动语义的基础知识并进行了一些测试。 案例一:
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
string st = "hello";
vector<string> vec;
vec.push_back(st);
cout << st;
cin.get();
}
在这种情况下,程序将不会打印任何内容,因为“hello”已移至 vector[0]。
案例#2:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int num=5;
vector<int> vec;
vec.push_back(num);
cout << num;
cin.get();
}
为什么程序打印“5”?我以为 num 会是 0 或未定义的东西。
【问题讨论】:
标签: vector move-semantics