gpt4 book ai didi

c++ - 为什么没有给 std::forward_list 一个 count() 成员函数?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:57:56 28 4
gpt4 key购买 nike

我明白为什么std::forward_list does not have a size() member function , 因为 O(1)版本会搞乱某些 splice() 的复杂性过载,并且由于 O(N) version 将与标准库的所有其他容器不一致。

这也是事实 std::liststd::forward_list已经有几个其他成员函数与 <algorithm> 中的表亲具有相同的语义标准库的一角(merge()reverse()remove()remove_if()unique()sort())。

那么为什么不是 count() O(N) 的成员函数提供给 std::forward_list 的复杂性具有返回 std::distance(std::begin(some_list), std::end(some_list)) 的语义?

最佳答案

提供您提到的成员函数(merge()reverse()remove()remove_if()unique()sort())是因为它们比<algorithm>中的通用算法具有更好的复杂性标准标题。

成员函数,例如 count() , 另一方面,不会比 std::distance(std::begin(some_list), std::end(some_list)) 有更好的复杂性.

此外,它可能会被误解为 std::count 的更复杂版本通用算法,它做了一些根本不同的事情。

关于c++ - 为什么没有给 std::forward_list 一个 count() 成员函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16279936/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com