Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++ STL의 다중 집합 equal_range() 함수

<시간/>

이 기사에서는 C++ STL에서 multiset::equal_range() 함수의 작동, 구문 및 예제에 대해 논의할 것입니다.

C++ STL의 다중 집합이란 무엇입니까?

다중 집합은 집합 컨테이너와 유사한 컨테이너입니다. 즉, 집합과 동일한 키 형식으로 값을 특정 순서로 저장합니다.

다중 집합에서 값은 집합과 동일한 키로 식별됩니다. 다중 집합과 집합의 주요 차이점은 집합에 고유한 키가 있다는 것입니다. 즉, 두 개의 키가 동일하지 않으며 다중 집합에는 동일한 키 값이 있을 수 있습니다.

다중 집합 키는 이진 검색 트리를 구현하는 데 사용됩니다.

multiset::equal_range()란 무엇입니까?

multiset::equal_range() 함수는 헤더 파일에 정의된 C++ STL의 내장 함수입니다. equal_range()는 다중 집합 컨테이너에서 동일한 요소의 범위를 가져옵니다.

이 함수는 우리가 함수에 제공한 매개변수와 동일한 컨테이너의 모든 요소를 ​​포함하는 범위의 경계를 반환합니다.

구문

ms_name.equal_range(value_type& val);

매개변수

함수는 하나의 매개변수를 받습니다 -

  • − 컨테이너에서 범위를 검색하는 값입니다.

반환 값

이 함수는 값이 같은 하한과 상한 쌍을 반환합니다.

예시

입력

std::multiset<int> mymultiset = {1, 2, 2, 3, 4};
mymultiset.equal_range(2);

출력

2 2

예시

#include <bits/stdc++.h>
using namespace std;
int main(){
   multiset<int> check;
   check.insert(10);
   check.insert(20);
   check.insert(30);
   check.insert(40);
   check.insert(50);
   check.insert(60);
   check.insert(70);
   check.insert(80);
   cout<<"Elements are: ";
   for (auto i = check.begin(); i!= check.end(); i++)
      cout << *i << " ";
   //lower bound and upper bound
   auto i = check.equal_range(30);
   cout<<"\nThe lower bound of 30 is " << *i.first;
   cout<<"\nThe upper bound of 30 is " << *i.second;
   // last element
   i = check.equal_range(20);
   cout<<"\nThe lower bound of 20 is " << *i.first;
   cout<<"\nThe upper bound of 20 is " << *i.second;
   i = check.equal_range(80);
   cout<<"\nThe lower bound of 80 is " << *i.first;
   cout<<"\nThe upper bound of 80 is " << *i.second;
   return 0;
}

출력

Elements are: 10 20 30 40 50 60 70 80
The lower bound of 30 is 30
The upper bound of 30 is 40
The lower bound of 20 is 20
The upper bound of 20 is 30
The lower bound of 80 is 80
The upper bound of 80 is 8