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

C++ std 운산자 < 使用方法及示例

C++ STL Set(집합)

연산자 <은 C++에서 비멤버 오버로드 함수 집합입니다.++. 이 함수는 첫 번째 집합이 다른 집합보다 작은지 확인하는 데 사용됩니다.

주의: 연산자 <은 set의 요소를 순서대로 비교하고, 첫 번째 불일치에서 비교를 중단합니다.

문법

template <class T, class Compare, class Alloc>
  bool operator< ( const set<T, Compare, Alloc>& lhs,
                    const set<T, Compare, Alloc>& rhs);

파라미터

lhs: 첫 번째 설정된 객체.

rhs: 두 번째 객체.

반환 값

set 객체의 왼쪽이 set 객체의 오른쪽보다 작으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

복잡

lhs와 rhs의 크기가 다를 때, 복잡도는 유지됩니다.

그렇지 않으면, 최대 길이는 lhs와 rhs입니다.

이터레이터 유효성

변경이 없습니다.

데이터 충돌

lhs와 rhs 컨테이너를 접근할 수 있습니다.

수정되지 않은 집합의 요소에 동시에 접근하는 것은 항상 안전합니다.

예외 안전

이 함수는 예외를 발생시키지 않습니다.

예시1

이 간단한 예제를 보겠습니다, 첫 번째 집합이 s보다 작은지 확인합니다:

#include <iostream>
#include <set>
using namespace std;
int main() {
   set<char> m1;
   set<char> m2;
   m2.emplace('a');
   if (m1 < m2)
      cout << "集合m1보다 작습니다2." << endl;
   m1 = m2;
   if (!(m1 < m2))
      cout << "集合m1m보다 작지 않습니다2." << endl;
   return 0;
}

출력:

집합m1보다 작습니다2.
집합m1m보다 작지 않습니다2.

위의 예제에서 두 그룹의 m이 있습니다1와 m2m2이 하나의 요소를 포함하고 있으며 m1이 비어 있습니다. 두 집합을 비교할 때, "集合m1보다 작습니다2", 그리고 m2에 할당됩니다1이후, 두 집합은 같은 요소를 가지고 있으며, 그런 다음 "集合m1m보다 작지 않습니다2"

예시2

이 간단한 예제를 보겠습니다:

#include <set>  
#include <iostream>  
  
int main ()  
{  
   using namespace std;  
   set<int> m1, m2, m3;  
   int i;  
  
   for (i = 1; i <3; i ++)  
   {  
      m1.insert(i);  
      m2.insert(i * i);  
      m3.insert(i - 1);  
   }  
  
   if (m1 < m2)  
      cout << "集合m1집합m보다 작습니다2." << endl;  
   else  
      cout << "集合m1集合m보다 크지 않습니다2." << endl;  
  
   if (m1 < m3)  
      cout << "集合m1집합m보다 작습니다3." << endl;  
   else  
      cout << "集合m1集合m보다 크지 않습니다3." << endl;  
}

출력:

집합m1집합m보다 작습니다2.
집합m1集合m보다 크지 않습니다3.

예시3

이 간단한 예제를 보겠습니다:

#include <iostream>
#include <set>
using namespace std;
int main()
{
  set<int> s1, s2;
  s1.insert(10);
  s1.insert(20);
  s1.insert(30);
  
  s2 = s1;
  cout << (s1 < s2) << endl;
  s2.insert(40);
  cout << (s1 < s2) << endl;
}

출력:

0
1

위의 예제에서, 집합 s1s보다 작은2그렇다면1그렇지 않으면 0을 반환합니다.

예시4

#include <set>  
#include <iostream>  
using namespace std; 
  
int main ()  
{  
   set<string> m2;
   typedef set<string> login; 
   
   m2.insert("xyz@123") ; //stored password
   
   string password;
   
   login m1;
   
       cout << "---------Login----------" << endl << endl;
       cout << \"비밀번호 입력:\n\"
       cin >> password;       // Get value
       m1.insert(password);   // Put them in set
     cout << \"입력한 비밀번호:\n\"
     for (auto it = m1.begin(); it != m1.end(); it++) {
        cout << (*it) << endl;
      }
      cout << \"시스템에 저장된 비밀번호:\n\"
     for (auto it = m2.begin(); it != m2.end(); it++) {
        cout << (*it) << endl;
     }
  
   if (m1 < m2)  
        cout << \ 
 
   else  
        cout << "\n당신의 페이지에 오신 것을 환영합니다..." << endl;
      
      return 0;
}

출력:

1).
---------Login----------
비밀번호 입력: 
xyz@123
당신이 입력한 비밀번호: 
xyz@123
시스템에 저장된 비밀번호 :
xyz@123
당신의 페이지에 오신 것을 환영합니다...
2).
---------Login----------
비밀번호 입력: 
abc@123
당신이 입력한 비밀번호: 
abc@123
시스템에 저장된 비밀번호:
xyz@123
비밀번호 오류...

위의 예제에서 두 그룹의 m이 있습니다1와 m2m1비밀번호를 포함하고, 두 번째 그룹 m2사용자가 입력한 비밀번호를 저장합니다. 그것은 m을 확인합니다1m보다 작은지 여부2m이 비밀번호1m보다 작지 않습니다2로그인 성공하면, 그렇지 않으면 로그인 실패.

C++ STL Set(집합)