我正在大量使用std::set<int>
通常我只需要检查这样的集合是否包含数字。
我觉得很自然地写:
if (myset.contains(number))
...
但由于缺乏一个contains
会员,我需要写繁琐的:
if (myset.find(number) != myset.end())
..
或者不那么明显:
if (myset.count(element) > 0)
..
这个设计决定有什么理由吗?
我想这可能是因为他们试图让std::set
and std::multiset
尽可能相似。 (显然count
具有完全合理的意义std::multiset
.)
我个人认为这是一个错误。
如果你假装那样的话,看起来并没有那么糟糕count
只是一个拼写错误contains
并将测试编写为:
if (myset.count(element))
...
但这仍然是一种耻辱。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)