在 C++ 中的向量中查找() stl
Posted
技术标签:
【中文标题】在 C++ 中的向量中查找() stl【英文标题】:find() stl in vector in c++ 【发布时间】:2020-01-05 19:02:53 【问题描述】:今天我试图在没有二进制搜索代码的向量中找到一个元素的位置,我发现有 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;
我应该怎么做才能获得向量中任何元素的位置? 谢谢
【问题讨论】:
请阅读Why should I not #include <bits/stdc++.h>?以及Why is “using namespace std;” considered bad practice? 【参考方案1】:试试
std::cout << (b - a.begin());
或者,甚至更好,
std::cout << std::distance(a.begin(), b);
(a.end() - b)
计算找到的元素到向量末端的距离,实际上是4。
【讨论】:
以上是关于在 C++ 中的向量中查找() stl的主要内容,如果未能解决你的问题,请参考以下文章
使用 STL 算法在表(向量的向量、二维数组)中查找最小值/最大值的优雅方法