我现在有for循环以下:迭代对于第二到最后一个元素列表中的
for(list<string>::iterator jt=it->begin(); jt!=it->end()-1; jt++)
我有字符串这是一个更大的列表(list<list<string> >
)的列表。我想遍历内部列表的内容,直到到达第二个到最后一个元素。这是因为我已经处理了最后一个元素的内容,没有理由再次处理它们。
但是,使用it->end()-1
是无效的 - 我不能在这里使用-
运算符。虽然我可以使用运算符--
,但这会在每个循环中递减最后的迭代器。
我相信一个STL列表是一个双向链表,所以从我的角度来看,应该可以做到这一点。
建议?在此先感谢
我很欣赏这个解决方案的简单性。是的,使用反向迭代器的其他解决方案非常好 - 但是您的解决方案在不使用特殊迭代器的情况下教会了我一种方法。 – BSchlinker
“如果你不想为创建一个仿函数而烦恼” - 今天我会建议只在那里粘贴一个lambda – Paladin