gpt4 book ai didi

c++ - 列表迭代器在 STL 中不兼容的问题

转载 作者:行者123 更新时间:2023-11-28 06:51:58 26 4
gpt4 key购买 nike

好吧,我是,编程水平一般,我不是专业人士,但我知道的足以让我四处走动。我在使用这段代码时遇到了问题,顺便说一句,我正在使用 Microsoft Visual 2013。它对我说的几乎就是它给了我一个非常糟糕的错误,说列表迭代器不兼容。所以基本上它不喜欢我将一个列表中的一件事与另一个列表中的另一件事进行比较。我的工作是提取两个“值”并将它们输入到不同的列表中,然后我将在其中比较两者,但这可能是做事的困难方法。谁能帮我解释一下这个?谢谢!!

list<string>::iterator cur;
list<string>::iterator dis;

cur = current_list.begin();
dis = disregard_list.begin();
unsigned int x = 1;
while (x < current_list.size() )
{

if (cur == dis)
{
cur = current_list.erase(cur);
}
else
{
++cur;
++x;
}
}

最佳答案

迭代器 curdis 属于不同的列表

cur = current_list.begin();
dis = disregard_list.begin();

所以你不能比较它们

if (cur == dis)

也许你的意思是

if ( *cur == *dis)

似乎也是这个循环

unsigned int x = 1;
while (x < current_list.size() )

无效。 x的初始值应该等于0吗?

考虑到类 std::list 有方法 remove也许你的意思是

current_list.remove( disregard_list.front() );

关于c++ - 列表迭代器在 STL 中不兼容的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23793430/

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