根據cppref:
constexpr iterator insert( const_iterator pos, const T& value );回傳值
迭代器指向插入的值。
復雜度
常數加上容器的位置和末端之間的距離的線性。
例外
常數加線性。
例外情況
如果在末尾插入一個單一元素時拋出一個例外,并且T是CopyInsertable或 std::is_nothrow_move_constructible::value為真,就不會有 影響(強大的例外保證)。
如果
pos是無效的,檔案中沒有明確描述以下問題:
什么是回傳值?- 是否會拋出一個例外?
。因此,我的問題是:
如果
std::vector::insert(pos, value)有一個無效的pos怎么辦?uj5u.com熱心網友回復:
std::vector是一個序列容器。表77。序列容器的要求列出了每個insert多載的第一個引數是p,它被定義為就在表的前面為: "p表示指向a的有效常數迭代器",其中a是矢量。所以位置迭代器被要求是對
a的有效迭代器。除非有不同的后果描述,否則不尊重特征的要求默認為未定義行為。uj5u.com熱心網友回復:
(15) 無效的迭代器是指一個可能是單數的迭代器(223)
(15)。
(223) 這個定義適用于指標,因為指標是迭代器。解除參考一個迭代器的 解除參考一個已經失效的迭代器的效果是
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/320005.html
標籤:
