English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ set find() 사용 방법 및 예제

C++ STL Set(집합)

C ++ set find()함수는검색에 사용되는지정된 val 의 요소요소를 찾으면 해당 요소를 가리키는 이터널을 반환하고, 그렇지 않으면 set :: end()를 가리키는 컬렉션의 끝을 가리키는 이터널을 반환합니다.

문법

         iterator find (const value_type& val) const;                  // C++ 11 전
   const_iterator find (const value_type& val) const;              //C++ 11시작
         iterator         find (const value_type& val);                    //C++ 11시작

매개변수

val콜렉션 컨테이너에서 검색할 값을 지정합니다.

반환 값

요소를 찾으면 해당 요소를 가리키는 이터널을 반환하고, 그렇지 않으면 set :: end()를 가리키는 컬렉션의 끝을 가리키는 이터널을 반환합니다.

복잡

대수적 크기.

이터너토 효력성

변경 없음。

데이터 갈등

컨테이너는 접근할 수 없습니다(상수 버전과 비상수 버전 모두)

지도의 값을 접근하지 않음: 요소를 동시에 접근하고 수정하는 것은 안전합니다。

이상안전

이상한 예외가 발생하면, 컨테이너에 어떤 변경도 없습니다。

예제1

다음은 주어진 키 값을 가진 요소를 찾는 간단한 예제를 보여줍니다:

#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

예제2

다음은 요소를 찾는 간단한 예제를 보여줍니다:

#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() 함수가 셋 m에서 키 값 e를 찾습니다. 만약 셋 m에서 키 값 e를 찾지 못하면, 그 때는 '未找到' 메시지를 반환하며, 그렇지 않으면 셋을 표시합니다.

예제3

다음은 간단한 예제를 보여줍니다:

#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() 함수를 사용하여 사용자가 주어진 값에 따라 요소를 찾습니다.

예제4

다음은 간단한 예제를 보여줍니다:

#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(집합)