如何在for循环体c ++中增加迭代器

时间:2016-11-26 01:03:50

标签: list for-loop iterator concatenation increment

我尝试一次加入一个元素的简单char列表来创建一个新列表。例如,如果listA = 1,2,3,4,5并且listB = a,b,c,d,e,f,listC = a,1,b,2,c,3等...

I have a function taking in two char list, but I'm not able to increment the iterators from list A and B without receiving a compiler error.

My code is as follows:

void altFusion(std::list<char> listOne, std::list<char> listTwo) {
    std::list<char>::iterator iter;
    std::list<char>::iterator nextIter;

    iter = listOne.begin();
    nextIter = listTwo.begin();
    std::list<char>newList;


    char temp = *iter;
    char temp2 = *nextIter;



    for (int i = 0; i < 10; i++) {
        newList.push_back(temp);
        newList.push_back(temp2);
        ++iter;
        ++nextIter;

    }

    std::list<char>::iterator newListIter;
    for (newListIter = newList.begin(); newListIter != newList.end(); ++newListIter) {
        std::cout << *newListIter;
    }
}

如果我不允许在for循环体内增加迭代器,我该怎么办?

如果我删除++ iter和++ nextIter,该程序可以正常工作,但答案并不合适。 (A,1,A,1,A,1,A,1 ...)

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

newList.push_back(temp);
newList.push_back(temp2);

由于这个原因,你的帖子增量和预增量不起作用的原因。你一次又一次地使用相同的值。你没有取代temp和temp2。

root_path