【发布时间】:2014-06-21 18:26:09
【问题描述】:
我想按索引擦除元素。在 eraseIndexs 函数中,我可以访问开始和结束迭代器。当我从开始和结束迭代器创建向量时,会从它们创建一个新向量。
如何通过迭代器擦除元素?
template <typename ForwardIt>
void eraseIndexs(ForwardIt& begin, ForwardIt& end, const vector<size_t>& indexs){
using T = typename iterator_traits<ForwardIt>::value_type;
vector<T> v(begin, end);
for (size_t index = 0; index < indexs.size(); index++)
v.erase(v.begin() + indexs[index] - index);
}
【问题讨论】:
-
"我想按索引擦除元素。"其次是“如何通过迭代器擦除元素?”你到底想要什么?
-
我不知道你想做什么。为什么要尝试操作会超出范围的局部变量(向量)?
-
@KarolyHorvath 我想我们可以假设它不会。人们提供SSCCE很好:)
-
@keyser:确实如此。就在代码中。