c++ - Sets/Maps 迭代器不可递增

标签 c++ dictionary set

为什么我不能在迭代时编辑集合/ map ? 示例:

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 未初始化,您不能递增它。

其余的看起来还不错。

关于c++ - Sets/Maps 迭代器不可递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27223956/

相关文章:

C++ 对象的快速排序 vector

c++ - 如何在我的软件中配置中文支持?

c++ - GPU 上的高质量图像放大

python - 如何处理字典理解中的异常

haskell - 将集合并集实现为幺半群

python - dict.items 和 dict.values 之间的行为不一致

java - 从输入创建集合

c++ - 带节点删除函数的链表问题

python - Python 中要列出的字典

python - 如何迭代元组字典