首页 文章

C矢量和插入

提问于
浏览
1

STL容器的insert方法有两个参数:一个指示插入位置的迭代器和一个要插入的值 . 知道insert方法定义了在迭代器当前引用的值之前插入新插入的值 .

为什么不适合定义插入将新值放在当前值之后?

3 回答

  • 0

    新插入的方法将位于迭代器指向的位置,其他所有内容都将“推送到下一个位置” .

    如果你将它放在当前项目之后,那么你实际上是在迭代器1处插入的

  • 0

    迭代器指向要插入新项目的项目 . 在语义上,您提供新项目的位置 .

    如果之后插入了项目,你怎么能在矢量的开头作为第一项插入?

    使用当前方案,项目可以插入任何地方 . 但根据您提出的替代方案,如果没有特殊情况,您无法在开始时插入 .

  • 0
    • 因为那时您将无法通过编写以下内容来执行插入:
    vect.insert(vect.begin(), value);
    
    • 因为那时你不能通过写作轻松地在最后执行插入
    vect.insert(vect.end(), value);
    

    执行上述操作后,新值实际上位于开始/结束(在插入之后计算,插入之前的迭代器可能无效),就像代码所说的那样 . 如果您以任何其他方式定义 insert ,则必须使用 +1/-1 .

相关问题