将成千上万个随机元素插入集合和无序集合之间的效率差异是什么?我该如何测量?
答案 0 :(得分:1)
如果要测量某些内容,请查看profiler或只是测量运行时间。
关于它们的复杂性,请参阅“复杂性”点下的文档。 set unordered_set。
从设置的文档中复制:
复杂度
1-2)容器大小的对数,O(log(size()))。
3-4)如果插入发生在提示之后的位置,则为摊销常数,否则为容器大小的对数。 (直到C ++ 11)
3-4)如果插入发生在提示之前的位置,则为摊销常数,否则为容器大小的对数。 (自C ++ 11起)
5-6)O(N * log(size()+ N)),其中N是要插入的元素数。
7)容器大小的对数,O(log(size()))。
8)如果插入发生在提示之前的位置,则为摊销常数,否则为容器大小的对数。
从无序集文档中复制
复杂度
1-4)平均情况:O(1),最坏情况为O(size())
5-6)平均情况:O(N),其中N是要插入的元素数。更糟的情况是:O(N * size()+ N)
7-8)平均情况:O(1),最坏情况为O(size())