#include <list>
#include <vector>
#include <Windows.h>
using namespace std;
int main(int argc, char* argv[])
{
list<int> listValue;
vector<int> vecValue;
DWORD d1 = GetTickCount();
for (int i = 0; i < 100000; ++i)
{
listValue.push_back(i);
}
DWORD d2 = GetTickCount() - d1;
DWORD d3 = GetTickCount();
for (int j = 0; j < 100000; ++j)
{
vecValue.push_back(j);
}
DWORD d4 = GetTickCount() - d3;
printf("list push_back rate : %u\nvector pop_back rate : %u\n", d2, d4);
DWORD d5 = GetTickCount();
for (int k = 0; k < 100000; ++k)
{
listValue.pop_back();
}
DWORD d6 = GetTickCount() - d5;
DWORD d7 = GetTickCount();
for (int m = 0; m < 100000; ++m)
{
vecValue.pop_back();
}
DWORD d8 = GetTickCount() - d7;
printf("list pop_back rate : %u\nvector pop_back rate : %u\n", d6, d8);
return 0;
}
运行结果如下: