C ++函数:编辑列表<int>以仅包含唯一元素;

时间:2018-03-09 16:18:22

标签: c++ list unique

我已经看到了这个问题的其他一些解决方案,但是我想理解为什么我的解决方案不起作用 - 它似乎陷入了循环,但我无法想象为什么。我的猜测是迭代器不会像我想的那样移动,或者我可能错过了一些愚蠢的错误。

void makeunique(list<int> &L)
{
    for(auto it1=L.begin(); it1!=L.end(); it1++)
        for(auto it2=it1; it2!=L.end(); it2++)
            if(it2==it1) it2++;
            else if(*it1==*it2) L.erase(it2);
}

我的想法是用两个循环遍历列表,其中第一个循环选择要比较的元素,第二个循环找到要比较的元素,直到第一个迭代器之后开始直到结束。

0 个答案:

没有答案