C++查找vector是否有某个元素
时间: 2023-10-02 22:03:23 浏览: 75
在 C++ 中,你可以使用 std::find 函数来查找 vector 中是否存在某个元素。该函数需要传入三个参数,第一个参数为要查找的 vector,第二个参数为要查找的元素,第三个参数为 vector 的起始位置。如果查找成功,该函数会返回指向该元素的迭代器,否则返回 vector::end()。
具体使用方法如下:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec{1, 2, 3, 4, 5};
int search_num = 3;
auto it = std::find(vec.begin(), vec.end(), search_num);
if (it != vec.end()) {
std::cout << "The vector contains " << search_num << std::endl;
} else {
std::cout << "The vector does not contain " << search_num << std::endl;
}
return 0;
}
```
以上代码会输出 "The vector contains 3"。如果将 search_num 改为 6,则会输出 "The vector does not contain 6"。
相关问题
c++ std vector 怎么查找结构体元素
如果你想在一个存储结构体的 vector 中查找某个元素,可以使用 std::find_if 函数结合 lambda 表达式来实现。下面是一个示例代码:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
struct Person {
std::string name;
int age;
};
int main() {
std::vector<Person> people = {{"Alice", 20}, {"Bob", 30}, {"Charlie", 40}};
// 查找年龄为 30 的人
auto it = std::find_if(people.begin(), people.end(), [](const Person& p) {
return p.age == 30;
});
// 如果找到了,输出这个人的姓名
if (it != people.end()) {
std::cout << it->name << std::endl;
}
else {
std::cout << "Not found" << std::endl;
}
return 0;
}
```
注意,这里 lambda 表达式的作用是告诉 std::find_if 函数如何比较元素。在这个示例中,lambda 表达式返回 true 表示这个元素的 age 字段等于 30,这样 std::find_if 函数才会认为这个元素是我们要找的。
在c++语言中如何在vector中查找某个元素
在C++中,可以使用`std::find`算法函数在vector中查找某个元素。使用这个函数需要包含头文件`<algorithm>`。
下面是一个示例代码,演示如何在vector中查找一个字符串元素:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<std::string> vec = {"apple", "banana", "orange", "pear"};
// 在vector中查找元素"orange"
auto it = std::find(vec.begin(), vec.end(), "orange");
// 输出查找结果
if (it != vec.end()) {
std::cout << "元素找到,位置为:" << it - vec.begin() << std::endl;
} else {
std::cout << "元素未找到" << std::endl;
}
return 0;
}
```
输出结果为:
```
元素找到,位置为:2
```
在上面的代码中,`std::find(vec.begin(), vec.end(), "orange")`函数返回一个指向要查找元素的迭代器。如果要查找的元素不存在,返回的迭代器等于`vec.end()`,可以用来判断是否找到元素。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)