diff --git a/README.md b/README.md index 16d3e175a41ed1026bce798428d04d233b25bcea..ccb81ce99915c8eb94c8ad78d4379a86b8ec6293 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ TinySTL * deque:100% * queue:100% * pair:100% - * list:90% + * list:100% * STL Algorithms: * fill:100% * fill_n:100% @@ -303,3 +303,40 @@ TinySTL |std::list<int>|10万|189| |std::list<int>|100万|1774| |std::list<int>|1000万|17571| + + +####(11):list<int>::sort() + + TinySTL::list list1; + std::list list2; + std::default_random_engine dre; + std::uniform_int_distribution id; + const size_t max = 10000; + for (int i = 0; i != max; ++i){ + auto n = id(dre); + list1.push_back(n); + list2.push_back(n); + } + double cost1 = 0.0, cost2 = 0.0; + for (int i = 0; i != 100; ++i){ + ProfilerInstance::start(); + list1.sort();//TinySTL::list + ProfilerInstance::finish(); + cost1 += ProfilerInstance::millisecond(); + + ProfilerInstance::start(); + list2.sort();//std::list + ProfilerInstance::finish(); + cost2 += ProfilerInstance::millisecond(); + } + cout << "TinySTL time: " << cost1 / 100 << "ms" << endl; + cout << "std time: " << cost2 / 100 << "ms" << endl; + +|container|quantity|time(ms)| +|---------|--------|--------| +|TinySTL::list<int>|1万|0.88| +|TinySTL::list<int>|10万|17.621| +|TinySTL::list<int>|100万|591.354| +|std::list<int>|1万|1.25| +|std::list<int>|10万|35.692| +|std::list<int>|100万|665.128|