【发布时间】:2020-09-07 13:14:28
【问题描述】:
在 c++ 中,我有一个 wstrings 列表和一个无序 wstring/wstring 映射。
std::list<std::wstring> m_L;
std::unordered_map<std::wstring, std::wstring> m_UM;
我需要在两个列表上运行一个循环,我不想重复循环代码(在无序映射中,我只关心第一个 wstring,而不关心第二个 wstring)。是否有一个迭代器构造可以让我在一个循环中迭代这两种类型?如果我尝试这样做,我会在 auto* n 上得到“无法推断自动类型”:
for (auto* n : { &m_L, &m_UM }) {
for (auto& it : *n) {
...
【问题讨论】:
-
使用 C++20 或
range-v3我很确定您可以查看这两个容器的串联视图。 -
而不是专注于您不想要处理的内容:您在 1D 上下文中呈现的扁平 2D 矩阵将以什么顺序列出?您能否提供输入/输出示例以帮助我们帮助您?
-
地图中的顺序无所谓,只要我遍历所有元素即可
标签: c++ list iterator unordered-map