如何同时遍历两个列表?

时间:2019-04-01 01:43:58

标签: c++

我有两个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;
}

1 个答案:

答案 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;
  }