[英]Is std::set `erase ( const key_type& x )` implemented in STL same way ` erase ( collection.find( x ) );` does?
[英]Why does `std::set::erase(const key_type&)` return `size_type` instead of `bool`?
因為std::set
不會insert()
重復,所以可以確保包含唯一元素。 當使用重載erase(const key_type&)
時,它的 object 將包含最多 1 個相同值的元素。 因此,它可能返回 1(如果存在)或 0(否則)。
什么時候erase(const key_type&)
可以返回超過1?
換句話說,返回size_type
而不是簡單的bool
的目的是什么?
返回size_type
的目的是保持一致性; 所有關聯容器都有一個erase
方法,該方法接受一個鍵類型並返回一個大小。 即使大小只能是零或一,它仍然是相同的界面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.