首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么没有给std::forward_list一个count()成员函数?

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

Stack Overflow用户
提问于 2013-04-29 13:31:41
回答 2查看 4.1K关注 0票数 5

我理解为什么std::forward_list member function,因为O(1)版本会扰乱某些splice()重载的复杂性,而且O(N)版本将与标准库的所有其他容器不一致。

另外,std::liststd::forward_list都有其他几个成员函数,它们的语义与标准库的<algorithm>角具有相同的语义(merge()reverse()remove()remove_if()unique()sort())。

那么,为什么没有一个具有返回count()语义的O(N)复杂性的std::forward_list成员函数呢?

EN

Stack Overflow用户

回答已采纳

发布于 2013-04-29 13:36:57

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

另一方面,像count()这样的成员函数不会比std::distance(std::begin(some_list), std::end(some_list))具有更好的复杂性。

此外,它可能被误解为std::count泛型算法的更好的复杂性版本,它做了一些基本不同的事情。

票数 11
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16279936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档