C++ 基礎(chǔ)教程

C++ 流程控制

C++ 函數(shù)

C++ 數(shù)組 & 字符串

C++ 數(shù)據(jù)結(jié)構(gòu)

C++ 類(lèi) & 對(duì)象

C++ 指針

C++ 繼承

C++ STL 教程

C++ 參考手冊(cè)

C++ set find() 使用方法及示例

C++ STL Set(集合)

C ++ set find()函數(shù)用于查找具有給定 val 的元素。如果找到元素,則返回指向該元素的迭代器,否則返回指向集合末尾的迭代器,即set :: end()。

語(yǔ)法

         iterator find (const value_type& val) const;                  // C++ 11 之前
   const_iterator find (const value_type& val) const;              //從 C++ 11開(kāi)始
         iterator       find (const value_type& val);                    //從 C++ 11開(kāi)始

參數(shù)

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

返回值

如果找到元素,則返回指向該元素的迭代器,否則返回指向集合末尾的迭代器,即set :: end()。

復(fù)雜

大小為對(duì)數(shù)。

迭代器有效性

沒(méi)有變化。

數(shù)據(jù)爭(zhēng)用

容器被訪問(wèn)(const版本和非const版本)都不能修改容器。

沒(méi)有訪問(wèn)映射的值:同時(shí)訪問(wèn)和修改元素是安全的。

異常安全

如果引發(fā)異常,則容器中沒(méi)有任何更改。

實(shí)例1

讓我們看一個(gè)簡(jiǎn)單的示例,查找具有給定鍵值的元素:

#include <iostream>
#include <set>

using namespace std;

int main(void) {
   set<int> m = {100,200,300,400};

   auto it = m.find(300);

   cout << "迭代器指向 " << *it << endl;

   return 0;
}

輸出:

迭代器指向 300

實(shí)例2

讓我們看一個(gè)簡(jiǎn)單的示例來(lái)查找元素:

#include <iostream>
#include <set>

using namespace std;

int main(void) {
   set<char> m = {'a', 'b', 'c', 'd'};

            
    auto it = m.find('e');
   
    if ( it == m.end() ) {
    // 未找到元素
     cout<<"未找到元素";
    } 
    else {
        // 找到
        cout << "迭代器指向 " << *it<< endl;
    }
    
   return 0;
}

輸出:

未找到元素

在上面的示例中,find()函數(shù)在集合m中查找鍵值e,如果在集合m中找不到鍵值e,則它將返回未找到消息,否則將顯示集合。

實(shí)例3

讓我們看一個(gè)簡(jiǎn)單的實(shí)例:

#include <iostream>
#include <set>
 
using namespace std;

int main()
{
    char n;
    set<char> example = {'a','b','c','d','e'};
    
    cout<<"輸入要搜索的元素: ";
    cin>>n;
 
    auto search = example.find(n);
    if (search != example.end()) {
        cout << n<<" 找到并且值是 " << *search << '\n';
    } else {
        cout << n<<" 未找到\n";
    }
}

輸出:

輸入要搜索的元素: b
找到并且值是  b

在上面的示例中,使用find()函數(shù)根據(jù)用戶的給定值查找元素。

實(shí)例4

讓我們看一個(gè)簡(jiǎn)單的實(shí)例:

#include <iostream>
#include <set>

int main () {
   std::set<int> myset;
   std::set<int>::iterator it;

   for (int i = 1; i <= 10; i++) myset.insert(i*10);    
   it = myset.find(40);
   myset.erase (it);
   myset.erase (myset.find(60));

   std::cout << "myset包含:";
   for (it = myset.begin(); it!=myset.end(); ++it)
      std::cout << ' ' << *it;
   std::cout << '\n';

   return 0;
}

輸出:

myset包含: 10 20 30 50 70 80 90 100

C++ STL Set(集合)

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清