关于set/map 等容器对string类的时间性能指标对比

Posted qieqiemin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于set/map 等容器对string类的时间性能指标对比相关的知识,希望对你有一定的参考价值。

关于set/map 等容器对string类的 性能指标

测试题目:

https://codeforces.com/contest/1287/problem/B

测试的字符串条件其中:

字符串长度为<=30,

字符串个数为<=1500,

且每一个加入和查询的字符串长度相等。

使用set/map 等容器 来检测某一个等长度的字符串是否存在。

使用关闭同步后的cin/cout 进行IO

技术图片

测试结果如上图。

结论:

在以上string条件下:

时间指标: set明显优于map unordered_set/unordered_map分别优于set/map
空间指标: set明显优于map unordered_set/unordered_map分别优于set/map
### 总结: 对于string类,set在时空上均优于map 因为字符串的个数为<=1500 ,所以内部采用hash算法的unordered_set/unordered_map分别优于set/map

可以通过下面文字链接查看对应代码。

68947873 Jan/17/2020 00:51UTC+8 QieziMin B - Hyperset GNU C++14 Accepted 576 ms 400 KB
68947783 Jan/17/2020 00:50UTC+8 QieziMin B - Hyperset GNU C++14 Accepted 1107 ms 106100 KB
68947742 Jan/17/2020 00:49UTC+8 QieziMin B - Hyperset GNU C++14 Accepted 2184 ms 106200 KB
68947641 Jan/17/2020 00:47UTC+8 QieziMin B - Hyperset GNU C++14 Accepted 624 ms 400 KB

ps:本测试仅对于本题的数据条件。

以上是关于关于set/map 等容器对string类的时间性能指标对比的主要内容,如果未能解决你的问题,请参考以下文章

关于List,Set,Map集合的遍历方法

map的常用用法详解

容器经典图

Java容器总结

effective STL

Java面试题:Java中的集合及其继承关系