簡體   English   中英

C ++ STL容器集和多集:具有不同返回類型的插入操作

[英]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 ,函數始終成功。

23.2.4關聯容器要求

iterator a.insert(p, t)

效果 :當且僅當在具有唯一鍵的容器中沒有元素的鍵等於t的鍵時,才插入t; 總是將t插入具有等效鍵的容器中。 始終返回迭代器,該迭代器使用等於t的鍵的鍵指向元素。 將t插入盡可能靠近p之前的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM