vector <int>::iterator low = lower_bound(v.begin(), v.end(), val);
if (v[low - v.begin()] == val)
{
cout << "Yes " << (low - v.begin() + 1) << endl;
}
почему вот это правильно в с++ а вот это не правильно?
vector <int>::iterator low = lower_bound(v.begin(), v.end(), val);
if (v[low] == val)
{
cout << "Yes " << (low - v.begin() + 1) << endl;
}
почему в с++ нельзя итератор напрямую вставить, хотя по сути begin() возвращает итератор, но который может складываться и вычиться с другим итератором, v это инт вектор. Мне кажется это какой-то бред