我有两个std::list<std::string> list1
std::list<std::string> list2
,我需要以某种方式同时遍历它们。
我尝试了几件事,例如使用std::transform
和做std::transform (list1.begin(), list1.end(), list2.begin(), list2.end());
,但可惜没有运气。
我目前正在做一次打印,
for(std::list<std::string>::iterator it=list1.begin(); it!=list1.end(); ++it) {
cout << *it <<endl;
}
答案 0 :(得分:0)
可能有更聪明的方法来做到这一点,但这是可行的(请注意,如果列表的长度不同,它将仅打印与较短列表中的项目一样多的项目对):
for(std::list<std::string>::iterator it1=list1.begin(), it2=list2.begin();
(it1!=list1.end())&&(it2!=list2.end());
++it1, ++it2)
{
std::cout << *it1 << " : " << *it2 << std::endl;
}