为什么`std :: set :: erase(const key_type&)`返回`size_type`而不是`bool`?

iam*_*ind 0 c++ return-type stdset language-lawyer erase-remove-idiom

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

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

Nic*_*las 7

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