當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ Set equal_range()用法及代碼示例


在本文中,我們將討論 C++ STL 中的 set::equal_range() 函數、它們的語法、工作和返回值。

C++ STL 中的 Set 是什麽?

C++ STL 中的集合是容器,它們必須按一般順序具有唯一元素。集合必須具有唯一的元素,因為元素的值標識了元素。一旦在集合容器中添加了一個值,以後就無法修改,盡管我們仍然可以將這些值刪除或添加到集合中。集合用作二叉搜索樹。

設置內容::equal_range()

equal_range() 函數是 C++ STL 的內置函數,定義在頭文件中。此函數返回包含作為函數參數傳遞的值的集合容器的範圍。該集合包含所有唯一值,因此找到的範圍內的等效值將是單個值。如果容器中不存在該值,則範圍將為零,兩個迭代器都指向第一個位置。

用法

Set1.equal_range(const type_t& value);

參數

該函數接受一個參數,即要查找的元素。

返回值

此函數返回對,或者我們可以說迭代器範圍從容器的下限開始,直到要在容器中找到的元素。

示例

Input:set<int> myset = {10, 20, 30, 40};
Output:lower bound of 30 is 30

示例

#include <bits/stdc++.h>
using namespace std;
int main(){
   set<int> mySet;
   mySet.insert(10);
   mySet.insert(20);
   mySet.insert(30);
   mySet.insert(40);
   mySet.insert(50);
   cout<<"Elements before applying range() Function:";
   for (auto i = mySet.begin(); i != mySet.end(); i++)
      cout << *i << " ";
   auto i = mySet.equal_range(30);
   cout<<"\nlower bound of 30 is "<< *i.first;
   cout<<"\nupper bound of 30 is "<< *i.second;
   i = mySet.equal_range(40);
   cout<<"\nlower bound of 40 is " << *i.first;
   cout<<"\nupper bound of 40 is " << *i.second;
   i = mySet.equal_range(10);
   cout<<"\nlower bound of 10 is " << *i.first;
   cout<<"\nupper bound of 10 is " << *i.second;
   return 0;
}

輸出

如果我們運行上麵的代碼,那麽它將生成以下輸出 -

Elements before applying range() Function:10 20 30 40 50
lower bound of 30 is 30
upper bound of 30 is 40
lower bound of 40 is 40
upper bound of 40 is 50
lower bound of 10 is 10
upper bound of 10 is 20

相關用法


注:本文由純淨天空篩選整理自Sunidhi Bansal大神的英文原創作品 Set equal_range() function in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。