C++教程
C++控制语句
C++函数
C++数组
C++指针
C++对象
C++继承
C++多态
C++抽象
C++常用
C++ STL教程
C++迭代器
C++程序

C++ multiset find()

C++ multiset find()

C++ multiset find()函数用于查找具有给定值val的元素。如果找到元素,则返回指向该元素的迭代器,否则返回指向 multiset 末尾的迭代器,即multiset :: end()。

语法

   iterator find (const value_type& val) const;                  // until C++ 11
   const_iterator find (const value_type& val) const;              //since C++ 11
         iterator       find (const value_type& val);                    //since C++ 11

参数

val : 指定要在 multiset 容器中搜索的值。

返回值

如果找到元素,则返回指向该元素的迭代器,否则返回指向 multiset 末尾的迭代器,即multiset :: end()。

复杂度

大小为对数。

迭代器有效性

无变化。

数据竞争

容器已被访问(常量和非常数版本均未修改容器。
未访问映射值: 同时访问和修改元素是安全。

异常安全性

如果引发异常,则 multiset 容器中没有任何更改。

示例1

让我们看一个简单的示例,查找具有给定键值的元素:
#include <iostream>
#include <set>
using namespace std;
int main(void) {
   multiset<int> m = {100,200,300,300};
   auto it = m.find(300);
   cout << "Iterator points to " << *it << endl;
   return 0;
}
输出:
Iterator points to 300

示例2

让我们看一个简单的示例来查找元素:
#include <iostream>
#include <set>
using namespace std;
int main(void) {
   multiset<char> m = {'a', 'b', 'c', 'a'};
    auto it = m.find('e');
   
    if ( it == m.end() ) {
    // not found
     cout<<"Element not found";
    } 
    else {
        // found
        cout << "Iterator points to " << *it<< endl;
    }
    
   return 0;
}
输出:
Element not found
在上面的示例中,find()函数在 multiset 合m中查找键值e,如果在 multiset 合中找不到键值e,则将返回未找到消息,否则将显示 multiset 合。

示例3

让我们看一个简单的示例:
#include <iostream>
#include <set>
 
using namespace std;
int main()
{
    char n;
    multiset<char> example = {'a','b','c','d','b'};
    
    cout<<"Enter the element which you want to search: ";
    cin>>n;
 
    auto search = example.find(n);
    if (search != example.end()) {
        cout << n<<" found and the value is " << *search << '\n';
    } else {
        cout << n<<" not found\n";
    }
}
输出:
Enter the element which you want to search: b
b found and the value is b
在上面的示例中,使用find()函数根据用户给定的值查找元素。

示例4

让我们来看一个简单的例子例如:
#include <iostream>
#include <set>
using namespace std;
int main () {
   multiset<int> mymultiset;
   multiset<int>::iterator it;
   for (int i = 1; i <= 10; i++) mymultiset.insert(i*10);    
   it = mymultiset.find(40);
   mymultiset.erase (it);
   mymultiset.erase (mymultiset.find(60));
   cout << "mymultiset contains:";
   for (it = mymultiset.begin(); it!=mymultiset.end(); ++it)
      cout << ' ' << *it;
   cout << '\n';
   return 0;
}
输出:
mymultiset contains: 10 20 30 50 70 80 90 100
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4