spi*_*ght 2 c++ syntax vector language-lawyer c++11
我更喜欢从源获取信息,对于这种情况,这是ISO-IEC 14882,其中擦除方法描述如下:
"iterator erase(const_iterator position);
iterator erase(const_iterator first,const_iterator last);效果:在擦除点处或之后使迭代器和引用无效.
复杂性:T的析构函数被称为等于被擦除元素数量的次数,但T的移动赋值运算符被称为等于擦除元素之后的向量中元素数量的次数.
抛出:除非复制构造函数,移动构造函数,赋值运算符或T的移动赋值运算符抛出异常,否则无效.
找不到有关返回迭代器的信息,当然,我用Google搜索并获得:
一个迭代器,指向函数调用擦除的最后一个元素后面元素的新位置
无法理解这里有标准描述
你能指点我吗?
更新:我的问题不是关于vector::erase工作方式,
而是标准中的位置,因为我接受可靠的信息来源,我们可以推断出有关返回值的信息
Nat*_*ica 10
这些信息略显不直观.什么erase返回是根据一般容器的需求部分的序列容器部分详细,specificly [sequence.reqmts]/11
迭代器从
a.erase(q)点返回q到元素被删除之前的元素.如果不存在此类元素,a.end()则返回.
迭代器返回的
a.erase(q1, q2)点指向q2被删除的元素之前指向的元素.如果不存在此类元素,a.end()则返回.