find() returns 向量下标超出范围
find() returns vector subscript out of range
我有一个浮点向量,其中包括以下内容:
48.2701
18.868
42.9535
7
39.2046
5.09902
29
我有一段代码可以找到向量中的最小数字和 returns 索引:
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;
但是当我运行时,它抛出一个矢量下标超出范围断点
我做错了什么?
编辑:
你为什么不简单地找到最小元素的索引使用:
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;
}
我有一个浮点向量,其中包括以下内容:
48.2701
18.868
42.9535
7
39.2046
5.09902
29
我有一段代码可以找到向量中的最小数字和 returns 索引:
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;
但是当我运行时,它抛出一个矢量下标超出范围断点
我做错了什么?
编辑:
你为什么不简单地找到最小元素的索引使用:
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;
}