首页 > 解决方案 > 为什么`std::set::erase(const key_type&)`返回`size_type`而不是`bool`?

问题描述

因为std::setinsert()重复,所以保证包含独特的元素。使用重载erase(const key_type&)时,它的对象将包含最多 1 个相同值的元素。因此,它可能返回 1(如果存在)或 0(否则)。

什么时候可以erase(const key_type&)返回超过1?
换句话说,返回 asize_type而不是 simple的目的是什么bool

标签: c++language-lawyerreturn-typestdseterase-remove-idiom

解决方案


返回的目的size_type是一致性;所有关联容器都有一个erase采用键类型并返回大小的方法。即使大小只能是零或一,它仍然是相同的界面。


推荐阅读