vector間賦值不能使用memcpy_s,會導致原來變量的內存出錯(猜的)。
可使用循環賦值獲assign方法,assign方法效率較高。
static vector<string> vec_test(1000000, "無力的反壟斷的積分辣豆腐");
int main()
{
vector<string> v1;
vector<string> v2;
vector<string> v3;
int t1,t2;
t1 = GetTickCount();
for (int i = 0; i < 1000000; ++i)
{
v1.push_back(vec_test[i]);
}
t2 = GetTickCount();
cout << t2 - t1 << endl;
t1 = GetTickCount();
vector<string>::iterator itr;
for (itr = vec_test.begin(); itr != vec_test.end(); ++itr)
{
v2.push_back(*itr);
}
t2 = GetTickCount();
cout << t2 - t1 << endl;
t1 = GetTickCount();
v3.assign(vec_test.begin(), vec_test.end());
t2 = GetTickCount();
cout << t2 - t1 << endl;
}
