«Авто» становится неправильным типом?

0

В принципе, вот как выглядит мой код:

vector<int> myVec; // defined elsewhere, and has stuff in it.
auto it = lower_bound(myVec.front(), myVec.back(), key);
myVec.insert(it, key); // <- compiler error!

Ошибка компилятора - error: no matching function for call to 'std::vector<int>::insert(int&, int&)', что неожиданно, потому что оно должно быть " something_something_iterator ".

Почему он это делает?

Я компилирую MinGW-W64 в Windows 7.

  • 0
    Что было полной ошибкой компилятора? Почему вы думаете, что компилятор считает, it это int& ?
  • 3
    std::vector::front/back возвращает ссылку или const_reference .. вы, вероятно, хотите использовать std::vector::begin/end
Показать ещё 4 комментария
Теги:
c++11
vector
auto

1 ответ

13
Лучший ответ

должен быть

auto it = std::lower_bound(myVec.begin(), myVec.end(), key);
  • 0
    Сначала я полностью пропустил begin / end в вопросе и ответе: /
  • 0
    Это сделал это, спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню