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;
}
解决方案
可能有更聪明的方法来做到这一点,但这会起作用(请注意,如果列表的长度不同,它只会打印与较短列表中的项目一样多的项目对):
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;
}
推荐阅读
- c# - 如何在 .net 核心中的 Url 中显示当前文化?
- reactjs - React Material-ui 库错误为非布尔属性 `active` 收到`true`。使用 Stepper 组件时
- java - Jersey http 客户端:使用自定义 Content-Length 提出请求
- java - 当我的活动处于横向时,如何以纵向模式打开 NavigationDrawer?
- java - 按条件拆分和配对子字符串
- json - 有没有办法在不使用 EXTRACT 的情况下编写 u-sql 查询
- dart - 如何在搜索委托上添加提示文本?
- android - 在改造中发送可选字段和多部分
- javascript - 仅当 div 未隐藏时才需要在表单中输入以发送电子邮件
- javascript - jsTree使用AJAX调用扩展节点不起作用