c++ unordered_set STL 中的 find() 函数

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、c++ unordered_set STL 中的 find() 函数

unordered_set::find() 函数是 STL 中的内置函数C++用于搜索容器中的元素。它向元素返回一个迭代器,如果找到其他元素,则返回一个指向 unordered_set::end() 的迭代器。

二、代码

1.语法

代码如下(示例):

unordered_set_name.find(key)

参数:此函数接受一个必需的参数键,该键指定要搜索的元素。

返回值:如果找到,它将返回元素的迭代器,否则返回指向unordered_set末尾的迭代器。

2.示例1

代码如下(示例):

#include <iostream> 
#include <string> 
#include <unordered_set> 
 
using namespace std; 
 
int main() 
{ 
 
    unordered_set<string> sampleSet = { "geeks1", "for", "geeks2" }; 
 
    // use of find() function 
    if (sampleSet.find("geeks1") != sampleSet.end()) { 
        cout << "element found." << endl; 
    } 
    else { 
        cout << "element not found" << endl; 
    } 
 
    return 0; 
} 

输出 element found.

时间复杂度:O(1)

辅助空间:O(n)

3.示例2

#include <iostream> 
#include <string> 
#include <unordered_set> 
 
using namespace std; 
 
int main() 
{ 
 
    unordered_set<string> sampleSet = { "geeks1", "for", "geeks2" }; 
 
    // use of find() function 
    if (sampleSet.find("geeksforgeeks") != sampleSet.end()) { 
        cout << "found" << endl; 
    } 
    else { 
        cout << "Not found" << endl; 
    } 
 
    return 0; 
} 

输出 not found.

时间复杂度:O(1)

辅助空间:O(n)

unordered_setC++ STL的一个容器,用于存储一组不重复的元素,其内部实现是基于哈希表的。unordered_set的元素是无序的,但是可以通过哈希函数快速查找元素。 unordered_set的用法和其他STL容器类似,可以使用insert()函数向其插入元素,使用erase()函数删除元素,使用find()函数查找元素等。另外,unordered_set还提供了一些其他的成员函数,如size()、empty()、clear()等。 unordered_set的定义方式如下: ```c++ #include <unordered_set> using namespace std; unordered_set<int> mySet; //定义一个存储int类型元素的unordered_set ``` 在使用unordered_set时,需要注意以下几点: 1. unordered_set的元素必须是可哈希的,即需要定义哈希函数和相等比较函数。 2. unordered_set的元素是无序的,不能通过下标访问元素。 3. unordered_set的元素不允许重复,如果插入重复元素会被忽略。 下面是一个使用unordered_set的例子: ```c++ #include <iostream> #include <unordered_set> using namespace std; int main() { unordered_set<int> mySet; mySet.insert(1); mySet.insert(2); mySet.insert(3); mySet.insert(2); //插入重复元素,会被忽略 cout << "mySet size: " << mySet.size() << endl; //输出元素个数 if (mySet.find(2) != mySet.end()) //查找元素2 cout << "2 is in mySet" << endl; else cout << "2 is not in mySet" << endl; mySet.erase(3); //删除元素3 for (auto it = mySet.begin(); it != mySet.end(); ++it) //遍历元素 cout << *it << " "; cout << endl; mySet.clear(); //清空元素 cout << "mySet size: " << mySet.size() << endl; //输出元素个数 return ; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值