有没有一种方法可以从以下向量中插入/删除元素 .
使用'push_back'的正式方法
以这种方式使用'find()' ... find(v.begin(),v.end(),int)
我已经阅读了一些可以通过包含插入/删除实现中间插入的地方 .
那么,它真的可能吗?
你可以使用std::vector::insert;但请注意,此操作为O(.size()) . 如果您的代码需要经常在中间执行插入,则可能需要切换到链接列表结构 .
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 .
std::vector
STL algorithms
vector::insert似乎是你想要的 .
3 回答
你可以使用std::vector::insert;但请注意,此操作为O(.size()) . 如果您的代码需要经常在中间执行插入,则可能需要切换到链接列表结构 .
是的,您可以使用std::vector::insert()在指定位置插入元素 .
因为向量使用数组作为其底层存储,所以在向量末端以外的位置插入元素会导致容器将位置之后的所有元素移动到新位置 . 与通过其他类型的序列容器(例如std :: list)对相同操作执行的操作相比,这通常是低效操作 .
std::vector
是标准容器,您可以在其上应用标准STL algorithms
.vector::insert似乎是你想要的 .