今天,我试图在没有二进制搜索代码的向量中查找元素的位置,但发现有诸如find()stl之类的东西。我实现了它并且正在编译,但是没有给出正确的输出
这是我的代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
vector<int> a(0);
a.push_back(6);
a.push_back(3);
a.push_back(9);
a.push_back(5);
a.push_back(1);
vector<int> :: iterator b;
b = find(a.begin() , a.end() , 3);
cout << (a.end() - b); // output is 4
return 0;
}
我应该如何获取向量中任何元素的位置?谢谢
尝试
std::cout << (b - a.begin());
甚至更好,
std::cout << std::distance(a.begin(), b);
[(a.end() - b)
计算找到的元素与向量的结尾之间的距离,实际上是4。