在中间插入一个元素到向量中

Posted

技术标签:

【中文标题】在中间插入一个元素到向量中【英文标题】:Inserting an element into vector in the middle 【发布时间】:2012-12-12 08:19:37 【问题描述】:

除了以下之外,还有其他方法可以从向量中插入/删除元素吗..

    使用'push_back'的形式化方法 以这种方式使用“find()”... find(v.begin(), v.end(), int)

我读过一些可以通过包容性插入/删除来实现中间插入的地方。

那么,真的有可能吗?

【问题讨论】:

有一个insert 函数。 Adding to middle of std::vector的可能重复 【参考方案1】:

您可以使用std::vector::insert;但是,请注意,此操作是 O(.size())。如果您的代码需要经常在中间执行插入操作,您可能需要切换到链表结构。

【讨论】:

【参考方案2】:
Is there an way of inserting/deleting an element from the vectors other than the following

是的,您可以使用std::vector::insert() 在指定位置插入元素。

因为向量使用数组作为其底层存储,所以在向量末端以外的位置插入元素会导致容器将位置之后的所有元素移动到新位置。与其他类型的序列容器(例如 std::list)为相同操作执行的操作相比,这通常是一种低效的操作。

std::vector 是标准容器,您可以在其上应用标准STL algorithms

【讨论】:

【参考方案3】:

vector::insert 似乎是你想要的。

【讨论】:

以上是关于在中间插入一个元素到向量中的主要内容,如果未能解决你的问题,请参考以下文章

无法将元素插入到列表的向量中

在r语言中,如何在数列中间插入数据

如何将元素插入向量的开头?

将元素插入到有序向量中的最有效方法是什么?

迭代数组并在索引处插入元素

C ++将元素插入向量