list拷贝到vector排序后拷回list和list+vector比较效率

#include 
#include 
using namespace std;
#include 
#include 
#include 

int main()
{
	srand(time(0));
	const int N = 1000000;
	vector v;
	v.reserve(N);

	list lt1;
	list lt2;

	for (int i = 0; i < N; i++)
	{
		auto e = rand();
		//v.push_back(e);
		lt1.push_back(e);
		lt2.push_back(e);
	}

	//拷贝到vector排序,排完以后再拷贝回来
	int begin1 = clock();
	for (auto e : lt1)
	{
		v.push_back(e);
	}
	//排序
	sort(v.begin(), v.end());

	//拷贝回链表
	size_t i = 0;
	for (auto& e : lt1)
	{
		e = v[i++];
	}
	int end1 = clock();

	int begin2 = clock();
	lt2.sort();
	int end2 = clock();

	cout << "copy vector sort:" << end1 - begin1 << endl;;
	cout << "list sort:" << end2 - begin2 << endl;;

}

你可能感兴趣的:(C++,c++)