在 c++ 中迭代对列表的正确方法?
Correct way to iterate over a list of pairs in c++?
我创建了一个unordered_maps对的列表,如下所示:
list<pair<int, unordered_map<int, bool>>> calc;
我正在尝试从右到左迭代列表,如下所示:
for (list<int>::reverse_iterator rit = calc.rbegin(); rit != calc.rend(); ++rit)
{
int d = n - (*rit).first;
}
但是以上是错误的消息"request for member ‘first’ in ‘rit.std::reverse_iterator<_Iterator>::operator*<std::_List_iterator<int> >()’, which is of non-class type ‘int’
我在这里缺少一些语法吗?
list<int>::reverse_iterator rit = calc.rbegin();
不正确。它需要
list<pair<int, unordered_map<int, bool>>>::reverse_iterator rit = calc.rbegin();
您可以简化生活并使用:
auto rit = calc.rbegin();
正确的语法是:
using List = list<pair<int, unordered_map<int, bool>>>;
List calc;
for (List::reverse_iterator rit = calc.rbegin(); rit != calc.rend(); ++rit)
{
int d = n - (*rit).first;
}
您可以使用auto
而不是List::reverse_iterator
。
相关文章:
- 没有为自己的结构调用列表推回方法
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 如何将类成员方法的参数列表自动填充写入可变参数?
- 如何将成员函数作为参数传递并在派生对象上执行方法列表
- 有什么方法可以将元素添加到列表中,如图所示?
- 如何获取列表的每个对象并调用getName方法来打印其名称
- 处理从列表中删除指向对象的指针的"healthy"方法是什么?
- 从列表/向量制作嵌套 for 循环的最佳方法是什么?
- 生成包含给定类型的 N 个参数的可变参数列表的最佳方法?
- C++中有没有一种方法可以通过指定列表中的每个成员变量来构造对象
- 在 c++ 中迭代对列表的正确方法?
- 获取位于特定区间的已排序值列表的子列表的最短方法
- 提供初始值设定项列表构造函数的有效方法
- 使用 clang 获取类中的方法列表
- 使用doxygen分别提取类的公共方法列表
- 用于在C++代码库中检索函数和方法列表的工具
- 如何使用带有clang绑定的python获取C++头中的方法列表
- 使用android NativeActivity的方法列表
- 不同参数计数的结构方法列表
- 生成从可执行文件调用的c++方法列表