C++ - 如何知道map :: upper_bound()是否没有返回值?

Amo*_*tir 1 c++ stl

我有一个非常简单的地图:

std::map<int, double> distances;
distances[20.5] = 1;
distances[19] = 2;
distances[24] = 3;
Run Code Online (Sandbox Code Playgroud)

在这种情况下使用map :: upper_bound()时,如何知道是否没有任何返回值,例如:

std::map<int, double>::iterator iter = distances.upper_bound(24);
Run Code Online (Sandbox Code Playgroud)

(24是最大键,因此会返回意外结果,但如何通过代码知道?如何知道我已达到最大键?).

谢谢 !

Mil*_*kov 11

if (iter == distances.end())
    // no upper bound
Run Code Online (Sandbox Code Playgroud)