vector使用find()
时间: 2024-06-13 15:04:19 浏览: 78
vector是一种STL容器,它可以存储任意类型的元素,并且支持动态扩容。不同于map,vector本身是没有find()这一方法的,但是可以通过algorithm库中的find()函数来实现查找。使用find()函数需要包含algorithm头文件。例如,可以使用以下代码在vector中查找元素1的位置:
vector<int> vec = {1, 2, 3, 4, 5};
vector<int>::iterator it = find(vec.begin(), vec.end(), 1);
if (it != vec.end()) {
cout << "found" << endl;
} else {
cout << "not found" << endl;
}
如果find()函数找到了元素,则返回该元素的迭代器,否则返回容器的end()迭代器。需要注意的是,end()并不是最后一个元素,最后一个元素在end()-1里。如果找到的话,那么这个迭代器的位置表示第一次出现该元素的位置。
如果要在两个vector中查找不同的元素,可以使用类似于引用中的方法,遍历其中一个vector,然后在另一个vector中查找是否存在该元素。如果存在,则从第一个vector中删除该元素,否则将该元素添加到结果vector中。
相关问题
vector find使用
`vector` 是 C++ 标准库中的容器,其中包含了很多有用的成员函数,其中之一就是 `find` 函数。它可以用于在 `vector` 中查找指定元素,并返回一个指向该元素的迭代器。
`find` 函数有两个重载版本:
1. `iterator find (const T& val)`:在 `vector` 中查找与 `val` 相等的元素,并返回指向该元素的迭代器。如果未找到,则返回指向 `vector` 结尾的迭代器(即 `vector.end()`)。
示例代码:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
auto it = std::find(vec.begin(), vec.end(), 3);
if (it != vec.end()) {
std::cout << "Element found at index: " << std::distance(vec.begin(), it) << std::endl;
} else {
std::cout << "Element not found" << std::endl;
}
```
输出:
```
Element found at index: 2
```
2. `iterator find (iterator first, iterator last, const T& val)`:在指定范围内查找与 `val` 相等的元素,并返回指向该元素的迭代器。如果未找到,则返回指向范围末尾的迭代器(即 `last`)。
示例代码:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
auto it = std::find(vec.begin() + 2, vec.end(), 3);
vector中find如何使用
在 C++ 的 STL 中,vector 类型提供了一个成员函数 find() 来查找指定元素在 vector 中的位置。该函数的语法如下:
```c++
vector_name.find(element);
```
其中,vector_name 表示要查找的 vector 对象名称,element 表示要查找的元素。
find() 函数会在 vector 中查找指定的元素,如果找到则返回该元素在 vector 中的迭代器,否则返回 vector 的末尾迭代器 end()。
下面是一个示例代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> vec = { 1, 2, 3, 4, 5 };
int target = 3;
auto iter = find(vec.begin(), vec.end(), target);
if (iter != vec.end()) {
cout << "Found target at position " << iter - vec.begin() << endl;
}
else {
cout << "Target not found" << endl;
}
return 0;
}
```
上述代码中,我们定义了一个 vector 对象 vec,然后使用 find() 函数查找元素 3 在 vec 中的位置。如果找到则输出该元素在 vector 中的位置,否则输出 "Target not found"。注意,我们使用了 auto 类型推导来自动推导出迭代器类型。
阅读全文