Ответ 1
Да, они оба действительны.
map::lower_bound
возвращает итератор, указывающий на первый элемент, который не меньше, чем ключ.
map::upper_bound
возвращает итератор, указывающий на первый элемент, который больше, чем ключ.
intmap[1]=10;
intmap[2]=20;
intmap[4]=40; // <<---both lower_bound(3)/upper_bound(3) will points to here
intmap[5]=50;
lower_bound/upper_bound
вернуть позицию, в которую будет вставлено значение .
Примечание. Если вы хотите проверить ключ значения, это карта или нет, вы можете использовать std:: map:: find