3

有没有一种方法可以从向量中插入/删除元素,而不是以下..

  1. 使用'push_back'的正式方法
  2. 以这种方式使用 'find()'... find(v.begin(), v.end(), int)

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

那么,真的有可能吗?

4

3 回答 3

4

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

于 2012-12-12T08:22:44.033 回答
3
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在其上应用标准。

于 2012-12-12T08:29:59.473 回答
0

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

于 2012-12-12T08:24:19.687 回答