Я не хочу использовать std::distance
, потому что он рассчитает все расстояние от моего итератора до конца. Но я должен быть уверен, что у меня есть N или более элементов из моего итератора до конца. Поэтому я использую следующий код:
if (std::next(it, n) != c.end()) // c is a std::multimap
{
/// my logic
}
Все отлично и работает с моим компилятором (g++ (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9)
), но у меня есть сомнения. В документации (cpprefenece.com & cplusplus.com) я не могу найти информацию о случае, когда n > std::distance(it , c.end())
или о каких-либо других исключительных случаях. Так. Является ли мой код безопасным? Или я должен написать свой собственный nextIfPossible
?