在集合和无序集合之间插入效率?

时间:2018-12-16 10:08:47

标签: c++ performance

将成千上万个随机元素插入集合和无序集合之间的效率差异是什么?我该如何测量?

1 个答案:

答案 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())