设置/映射迭代器不可递增
Sets/Maps iterators not incrementable
为什么在迭代时不能编辑集合/映射?例:
bool flag;
set <int> :: iterator aIterator;
set <int> :: iterator bIterator;
bIterator = B.begin();
for (bIterator=B.begin(); bIterator!=B.end(); ++bIterator)
{
flag = true;
aIterator = A.begin();
for (aIterator=A.begin(); aIterator!=A.end(); ++aIterator)
{
if (*bIterator == *aIterator)// if an elemnet in B is found in A, delete that element from A and check the next element of B
{
A.erase(aIterator);
flag = false;
break;
}
}
if (flag == true)
A.insert(*bIterator); //if not found then add that element to A(which now represents the set of symmetric difference)
}
我该如何处理?我的意思是,如何在迭代时编辑集合?
这样做: for (aIterator=A.begin(); aIterator!=A.end(); ++aIterator)
不是那个: for (bIterator=A.begin(); bIterator!=A.end(); ++aIterator)
aIterator 未初始化,您不能递增它。
其余的看起来还可以。
相关文章:
- 错误 C2760:语法错误:映射迭代器上意外的标记"标识符",预期的";"
- 映射迭代器与运算符不匹配
- 使用迭代器替换映射中的常量项的方法
- 映射中循环的迭代器
- std::使用迭代器映射查找距离,程序不会终止
- 创建以向量/列表迭代器为键的映射
- 我可以将映射迭代器与 OpenMP 并行使用吗?
- c++ 在循环中删除迭代器(映射的映射)
- std::map 擦除 - 将迭代器传递给错误的映射
- BAD_ACCES映射 C++ 上的迭代器
- 映射/集迭代器不可取消引用 (C++) - 调试断言失败
- 取消引用映射迭代器时返回对临时的引用
- 来自并发哈希映射的迭代器是否安全
- 为什么映射迭代器显示基本操作数无效错误
- C++有关映射和迭代器的错误
- 复制映射迭代器对值的省略
- ->第一个/第二个到空映射迭代器开始
- 将迭代器映射到特定字段上的迭代器(可以使用 Boost)
- c++如何将迭代器映射的集合作为键
- 有没有一种方法可以将迭代器映射到它的容器