📅  最后修改于: 2020-10-20 01:12:41             🧑  作者: Mango
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容器中没有任何更改。
让我们看一个简单的示例,查找具有给定键值的元素:
#include
#include
using namespace std;
int main(void) {
multiset m = {100,200,300,300};
auto it = m.find(300);
cout << "Iterator points to " << *it << endl;
return 0;
}
输出:
Iterator points to 300
让我们看一个简单的示例来查找元素:
#include
#include
using namespace std;
int main(void) {
multiset 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()函数在多重集合m中查找键值e,如果在多重集合中未找到键值e,则它将返回未找到消息,否则将显示多重集合。
让我们看一个简单的例子:
#include
#include
using namespace std;
int main()
{
char n;
multiset 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()函数根据用户的给定值查找元素。
让我们看一个简单的例子:
#include
#include
using namespace std;
int main () {
multiset mymultiset;
multiset::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