C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++ STLのmultisetequal_range()関数


この記事では、C++STLでのmultiset::equal_range()関数の動作、構文、および例について説明します。

C ++ STLのマルチセットとは何ですか?

マルチセットは、セットコンテナに似たコンテナです。つまり、セットと同じキーの形式で、特定の順序で値を格納します。

マルチセットでは、値はセットと同じキーとして識別されます。マルチセットとセットの主な違いは、セットには別個のキーがあることです。つまり、2つのキーが同じではなく、マルチセットでは同じキー値が存在する可能性があります。

マルチセットキーは、二分探索木を実装するために使用されます。

multiset ::equal_range()とは何ですか?

multiset ::equal_range()関数は、C ++ STLに組み込まれている関数であり、ヘッダーファイルで定義されています。 equal_range()は、マルチセットコンテナ内の等しい要素の範囲を取得します。

この関数は、関数に指定したパラメーターに等しいコンテナー内のすべての要素を含む範囲の境界を返します。

構文

ms_name.equal_range(value_type& val);

パラメータ

関数は1つのパラメーターを受け入れます-

  • 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

  1. C ++ STLのcosh()関数

    cosh()関数は、ラジアンで指定された角度の双曲線正弦を返します。これはC++STLに組み込まれている関数です。 cosh()関数の構文は次のとおりです。 cosh(var) 構文からわかるように、関数cosh()は、データ型float、double、またはlongdoubleのパラメーターvarを受け入れます。 varの双曲線コサインを返します。 C ++でcosh()を示すプログラムは次のとおりです- 例 #include <iostream> #include <cmath> using namespace std; int main() {  

  2. C ++ STLのsinh()関数

    sinh()関数は、ラジアンで指定された角度の双曲線正弦を返します。これはC++STLに組み込まれている関数です。 sinh()関数の構文は次のとおりです。 sinh(var) 構文からわかるように、関数sinh()は、データ型float、double、またはlongdoubleのパラメーターvarを受け入れます。 varの双曲線サインを返します。 C ++でsinh()を示すプログラムは次のとおりです。 例 #include <iostream> #include <cmath> using namespace std; int main() {