[find()stl in c ++中的向量

问题描述 投票:1回答:1

今天,我试图在没有二进制搜索代码的向量中查找元素的位置,但发现有诸如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;
}

我应该如何获取向量中任何元素的位置?谢谢

c++ vector stl find
1个回答
7
投票

尝试

std::cout << (b - a.begin());

甚至更好,

std::cout << std::distance(a.begin(), b);

[(a.end() - b)计算找到的元素与向量的结尾之间的距离,实际上是4。

© www.soinside.com 2019 - 2024. All rights reserved.