我尝试一次加入一个元素的简单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 ...)
感谢您的帮助!
答案 0 :(得分:0)
newList.push_back(temp);
newList.push_back(temp2);
由于这个原因,你的帖子增量和预增量不起作用的原因。你一次又一次地使用相同的值。你没有取代temp和temp2。
root_path