vector,v.end()和v.begin()

时间:2017-10-13 13:37:29

标签: c++11

array = magic.func(n,m)

如果我的评论是正确的,那么如何v.insert(v.end(),任何数字);可以是正确的吗?

2 个答案:

答案 0 :(得分:1)

iterator insert( iterator pos, const T& value );在指定位置之前插入元素

所以在这里它将插入后面,然后end位置将移动一个。

it1=v.end()将使insert失效,因此您需要重新设置它。 (谢谢@Mgetz)

要插入空矢量,您仍然可以插入end。仅仅因为空载体中的end() == begin()并不意味着它们被设置为相同的东西。

答案 1 :(得分:1)

永远不要调试评论。始终调试代码。 :)

std::vector::insert(iterator, value)在传入迭代器之前插入值。由于std::vector::end()传递给insert(),因此在向量结束之前插入15 - 即12之后。因此当打印第一个元素后的元素,应打印15。