假设我有以下使用 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 许可协议
首先,
begin
和end
返回迭代器,您需要对其执行间接(*
)以获取元素。其次,
end
返回过去的迭代器,因此实际上并不引用最后一个元素。您可以改为使用反向开始迭代器。