关于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:本测试仅对于本题的数据条件。

 京公网安备 11010502036488号
京公网安备 11010502036488号