为 c 引用 set 中的 max/min int

新手上路,请多包涵

假设我有以下使用 c++ 中的集合的示例:

 set <int> a;
for (int i = 0; i <10; i++){
//Assume i is a random number
a.insert(i);
}

您如何找到上面显示的示例的最大值和最小值?理想情况下,我认为以下方法可行,但会出现以下错误:

 error: cannot convert 'std::_Rb_tree_const_iterator<int>' to 'int' in assignment

我正在使用以下函数来尝试获取最大值/最小值:

 min = a.begin();
max = a.end();

原文由 Valrok 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 701
1 个回答

首先, beginend 返回迭代器,您需要对其执行间接( * )以获取元素。

其次, end 返回过去的迭代器,因此实际上并不引用最后一个元素。您可以改为使用反向开始迭代器。

 min = *a.begin();
max = *a.rbegin();

原文由 Joseph Mansfield 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题