[英]C++ STL container set&multiset:the insert operation with different return types
關於STL容器集和多重集 , 插入函數的返回類型並不完全相同。 set提供以下接口:
pair<iterator,bool> insert(const value_type& elem);
iterator insert(iterator pos_hint, const value_type& elem);
multiset提供以下接口:
iterator insert(const value_type& elem);
iterator insert(iterator pos_hint, const value_type& elem);
在組的第一功能,該對結構返回是否插入的構件第二個是,如果它已經包含在組的第二功能與相同的value.But的元素的元素的successful.The插入可能失敗的一組,插入函數只是返回一個迭代器,如果插入失敗會發生什么,有人可以告訴我嗎? 非常感謝。
但是在set的第二個函數中,insert函數僅返回一個迭代器。如果插入失敗,會發生什么?
在set::insert
版本中,該版本僅返回一個普通的iterator
(而不是pair<iterator,bool>
),當找到一個現有元素時,集合將保持不變,並且insert
會將迭代器返回到現有元素(這樣可以避免插入)。
在multiset::insert
,函數始終成功。
iterator a.insert(p, t)
效果 :當且僅當在具有唯一鍵的容器中沒有元素的鍵等於t的鍵時,才插入t; 總是將t插入具有等效鍵的容器中。 始終返回迭代器,該迭代器使用等於t的鍵的鍵指向元素。 將t插入盡可能靠近p之前的位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.