이 기사에서는 C++ STL에서 multiset::equal_range() 함수의 작동, 구문 및 예제에 대해 논의할 것입니다.
C++ STL의 다중 집합이란 무엇입니까?
다중 집합은 집합 컨테이너와 유사한 컨테이너입니다. 즉, 집합과 동일한 키 형식으로 값을 특정 순서로 저장합니다.
다중 집합에서 값은 집합과 동일한 키로 식별됩니다. 다중 집합과 집합의 주요 차이점은 집합에 고유한 키가 있다는 것입니다. 즉, 두 개의 키가 동일하지 않으며 다중 집합에는 동일한 키 값이 있을 수 있습니다.
다중 집합 키는 이진 검색 트리를 구현하는 데 사용됩니다.
multiset::equal_range()란 무엇입니까?
multiset::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