ReadingLab/Discussion-for-Cpp

C++ primer第五版11.3.2节疑问

EnzoFerrari430 opened this issue · 2 comments

关联容器insert操作中
c.insert(p,v),将迭代器p作为一个提示,指出从哪里开始搜索新元素应该存储的位置。
这个p具体什么作用我看的不是很明白。希望能解答一下,谢谢

pezy commented

@EnzoFerrari430

书上的确对此处语焉不详。但参见 std::map::insertstd::set::insert 不难发现,这个 p 作为一个提示,更像是一个插入标识(flag)。在 C++11 标准之后,insert(p, v) 就表示在 p 之前插入 v

最简单,可以动手一试便知:http://cpp.sh/5dgkb

恩,看到了 inserts value in the position as close as possible, just prior(since C++11), to hint.
只说是尽可能靠近p位置,没说一定要在p位置之前。感谢。