find () возвращает нижний индекс вектора вне диапазона

У меня есть вектор поплавков, которые включают в себя следующее:

48.2701
18.868
42.9535
7
39.2046
5.09902
29

У меня есть кусок кода, который находит наименьшее число в векторе и возвращает индекс:

int indexofsmallest = 2;
smallest = *min_element(distances.begin(), distances.end());
int pos = find(distances.begin(), distances.end(), smallest) - distances.begin();
indexofsmallest = pos;

cout << "||" << smallest << "||" << endl;
cout << "index of smallest is:" << indexofsmallest + 1 << endl;

Однако, когда я бегу, он выбрасывает нижний индекс вектора за пределы точки останова

что я тут не так делаю?

РЕДАКТИРОВАТЬ:
введите описание изображения здесь

введите описание изображения здесь

-1

Решение

Почему бы вам просто не найти индекс наименьшего элемента, используя:

int smallestInd = min_element(distances.begin(), distances.end()) - distances.begin();

РЕДАКТИРОВАТЬ

Это код, который я имею в моем редакторе

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main() {

vector<double> distances = { 48.2701, 18.868, 42.9535, 7, 39.2046, 5.09902, 29 };
cout << min_element(distances.begin(), distances.end()) - distances.begin() << endl;
return 0;
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]