【发布时间】:2011-09-11 19:38:27
【问题描述】:
我们正在尝试使用 std::deque 擦除成员函数。 std::deque erase(iterator) 成员函数的返回值是一个随机访问迭代器,指向函数调用擦除的最后一个元素之后的元素的新位置,如果操作擦除了序列中的最后一个元素。
我们想知道是否可以有效地检查 STL std::deque 擦除是否成功。谢谢你。我们的代码摘录如下所示:
typedef std::multimap<char *,Range>::const_iterator I;
std::pair<I,I> b = mmultimap.equal_range(TmpPrevMapPtr);
for (I i=b.first; i != b.second; ++i){
std::deque<Range>::iterator iter;
std::deque<Range>::iterator it;
iter = std::lower_bound(ranges_type.begin(),ranges_type.end(),i->second);
if (iter != ranges_type.end() && !(i->second < *iter)){
it = ranges_type.erase(iter);
}
}
【问题讨论】:
-
为什么会同时标记
linux和visual-c++?这似乎是一个奇怪的组合。此外,您可能想要修复您的代码块。 -
Sven ,我们为原型重复数据删除器尝试的代码必须在 Linux 和 Windows Visual C++ 上运行。谢谢。
标签: c++