gpt4 book ai didi

c++ - 在具有特定值的元素之前的 std::vector 中插入一个元素

转载 作者:搜寻专家 更新时间:2023-10-31 00:00:42 26 4
gpt4 key购买 nike

你能建议一个更好的方法来在 std::vector 中的另一个值之前插入一个值吗:

template<class T>
void insert(std::vector<T>& container, const T& valueToInsertBefore, const T& valueToInsert)
{
std::vector<T>::iterator i = container.begin();
std::vector<T>::iterator end = container.end();
for(;i!=end;++i)
{
if(*i==valueToInsertBefore)
{
i = container.insert(i, valueToInsert);
i++;
end = container.end();
}
}

}

更新:

应该为在 std::vector 中找到的每个 valueToInsertBefore 实例插入。

最佳答案

使用std::find()定位值而不是显式循环:

std::vector<T>::iterator i = v.begin();
while (v.end() != (i = std::find(i, v.end(), valueToInsertBefore)))
{
// insert() returns an iterator to the inserted element.
// The '+ 2' moves past it and the searched for element.
//
i = v.insert(i, valueToInsert) + 2;
}

关于c++ - 在具有特定值的元素之前的 std::vector 中插入一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12455779/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com