C++ C+中std::multiset::count的时间复杂度是多少+;?

C++ C+中std::multiset::count的时间复杂度是多少+;?,c++,c++11,stl,std,multiset,C++,C++11,Stl,Std,Multiset,我对在大小为n的多集合中调用某些元素x的count(x)时发生的操作数感到困惑 我的操作数是log(n)+#_of_matches _of_x,意思是多集合中元素数的对数,加上多集合中所有元素中目标元素x的匹配数,对吗 谢谢你的时间 这清楚地表明multiset::count的复杂性是 大小为对数,匹配数为线性 或者你可以看看这个 容器大小的对数加上找到的元素数量的线性 嗯,我为你写了一篇有趣的文章。()这清楚地说明了multiset::count的复杂性是 大小为对数,匹配数为线性 或者你可以

我对在大小为n的多集合中调用某些元素x的count(x)时发生的操作数感到困惑

我的操作数是log(n)+#_of_matches _of_x,意思是多集合中元素数的对数,加上多集合中所有元素中目标元素x的匹配数,对吗

谢谢你的时间

这清楚地表明multiset::count的复杂性是

大小为对数,匹配数为线性

或者你可以看看这个

容器大小的对数加上找到的元素数量的线性

嗯,我为你写了一篇有趣的文章。()

这清楚地说明了multiset::count的复杂性是

大小为对数,匹配数为线性

或者你可以看看这个

容器大小的对数加上找到的元素数量的线性

嗯,我为你写了一篇有趣的文章。()

正如前面提到的,计数的复杂性是:

容器大小的对数加上容器数量的线性 找到的元素

原因是,
std::multimap
是一种树状数据结构,每个树节点上都有一个容器。因此,对于调用
std::multimap::count
,您应该首先在树中找到键
O(log(All elements))
,然后对找到的节点中的元素进行计数
(O(found elements))

,正如前面提到的,计数的复杂性是:

容器大小的对数加上容器数量的线性 找到的元素


原因是,
std::multimap
是一种树状数据结构,每个树节点上都有一个容器。因此,对于调用
std::multimap::count
时,您应该首先在树中找到键
O(log(All elements))
,然后计算找到的节点中的元素
(O(found elements))

如果有疑问,请检查参考站点,如:I died,我只是不明白时间复杂度的线性部分意味着什么。线性意味着O(N),但更具体地说,在操作数量方面……是目标元素的匹配数量吗?如果有疑问,请查看参考网站,如:我知道了,我只是不明白时间复杂度的线性部分意味着什么。线性意味着O(N)但更具体地说,在操作数量方面……是目标元素的匹配数量吗?