根据cppref
constexpr iterator insert( const_iterator pos, const T& value );返回值 指向插入值的Iterator。 复杂性 常数加上容器末端与pos之间的距离成线性。 例外 如果在末尾插入单个元素时抛出异常,而T为CopyInsertable或std::is_nothrow_move_constructible::value为真,则不存在任何效果(强异常保证)。
如果pos无效,文档将不清楚地描述以下问题:
所以,我的问题是:
如果使用无效的pos的 std::vector::insert(pos, value) ,怎么办?
发布于 2021-09-11 19:50:14
std::vector是一个序列容器。表77:顺序容器需求将每个insert重载的第一个参数列为p,定义为:"__p表示到a__的有效常量迭代器“,其中a是向量。
因此,位置迭代器必须是a的有效迭代器。除非描述了不同的结果,否则在默认情况下,不尊重特性的要求是未定义的行为。
发布于 2021-09-11 20:01:50
(15)无效迭代器是可以是单数的迭代器(223)。 (223)这个定义适用于指针,因为指针是迭代器。取消引用已失效的迭代器的效果未定义。
https://stackoverflow.com/questions/69146195
复制相似问题