相关疑难解决方法(0)

为什么std :: set没有"包含"成员函数?

我正在大量使用,std::set<int>而且我经常需要检查这样的集合是否包含数字.

我觉得写作很自然:

if (myset.contains(number))
   ...
Run Code Online (Sandbox Code Playgroud)

但由于缺少一名contains成员,我需要编写繁琐的内容:

if (myset.find(number) != myset.end())
  ..
Run Code Online (Sandbox Code Playgroud)

或者不那么明显:

if (myset.count(element) > 0) 
  ..
Run Code Online (Sandbox Code Playgroud)

这个设计决定有理由吗?

c++ stl stdset

96
推荐指数
7
解决办法
1万
查看次数

当所有元素都应该是唯一的时,为什么STL set有count()?

我可以理解multiset有count(),用于计算值的出现次数,因为元素可以在multiset中重复.但是,如果所有值都是唯一的,那么将count()设置为set是什么意思?

c++ stl set

11
推荐指数
1
解决办法
1552
查看次数

为什么C++ STL设置容器的count()方法如此命名?

它真正检查的是contains()而不是出现次数的计数,对吧?不允许重复,所以不包含()是一个比count()更好的名字?

c++ naming stl naming-conventions

8
推荐指数
1
解决办法
2267
查看次数

标签 统计

c++ ×3

stl ×3

naming ×1

naming-conventions ×1

set ×1

stdset ×1