将列表附加到另一个列表

时间:2015-06-28 16:05:04

标签: c++ list append

我有一个很大的list<pair<T, T>>。为了加快我的程序,我想使用不同的线程来填充列表,然后将它们连接到1个大列表。

我找到了这个解决方案:Basically same question

为了测试这个解决方案,我创建了2个列表,每个列表包含2个元素,并按照说明连接它们。

list1.splice(list1.end(), list2);

但是这个操作持续几秒,这对我来说只需要调整一些指针就好了。

那么连接2个列表的正确方法是什么?

编辑:

cout << "Filling matrix... ";
for(int i = 0; i < n; ++i) {
    list1.push_back(make_pair(i, false));
    list2.push_back(make_pair(i, false));
}
cout << "OK" << endl;

cout << "Merging lists... ";
clock_t begin = clock();

list1.splice(list1.end(), list2);

clock_t end = clock();
cout << "OK" << endl;
double elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;

cout << "Time: " << elapsed_secs << endl;

输出:

  

填充矩阵......好的   合并列表......好的   时间:4.54

0 个答案:

没有答案