首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >C++向量和插入

C++向量和插入
EN

Stack Overflow用户
提问于 2015-01-27 02:50:43
回答 3查看 60关注 0票数 1

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

为什么不应该改为定义insert将新值放在当前值之后呢?

EN

回答 3

Stack Overflow用户

发布于 2015-01-27 02:53:19

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

如果您将它放在当前项的后面,那么实际上是在iterator+1处插入

票数 0
EN

Stack Overflow用户

发布于 2015-01-27 05:45:35

迭代器指向要在前面插入新项的项。从语义上讲,您提供的是新项目的位置。

如果在后面插入项,如何在向量的开头插入作为第一项?

使用当前方案,可以将项目插入到任何位置。但在您提出的替代方案中,如果没有特殊情况,则不能在开头插入。

票数 0
EN

Stack Overflow用户

发布于 2015-01-27 06:08:30

  1. ,因为这样您就不能通过编写以下代码来在开头执行插入:

vect.insert(vect.begin(),value);

  • Because ),那么您就不能通过编写以下代码来轻松地在末尾执行插入

vect.insert(vect.end(),value);

执行上述操作后,新值实际上位于begin/end (在insert之后求值,insert之前的迭代器可能无效),正如代码所说的那样。如果您以其他方式定义insert,则必须使用+1/-1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28156705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档