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

C++STLのmultimap::crbegin()およびmultimap ::crend()


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

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

マルチマップは、マップコンテナに似た連想コンテナです。また、Key-Valueとマップされた値の組み合わせによって形成された要素を特定の順序で格納することも容易になります。マルチマップコンテナには、同じキーに関連付けられた複数の要素が存在する可能性があります。データは、関連するキーを使用して内部的に常に並べ替えられます。

multimap ::cbegin()とは何ですか?

multimap ::crbegin()関数は、C ++ STLに組み込まれている関数であり、 ヘッダーファイルで定義されています。 crbegin()は、一定の逆開始を意味します。これは、一定の開始であったcbeginの逆を意味します。つまり、関数crbegin()は、関数に関連付けられたマルチマップコンテナーの最後の要素を指すイテレーターを返します。このイテレータを使用してマルチマップを変更することはできません。これは、設定されたコンテナをトラバースするために使用できます。

構文

mutliMap_name.crbegin();

パラメータ

この関数はパラメータを受け入れません。

戻り値

この関数は、コンテナの最後の要素を指しているイテレータを返します。

入力

multimap<char, int> newmap;
newmap(make_pair(‘a’, 1));
newmap(make_pair(‘b’, 2));
newmap(make_pair(‘c’, 3));
newmap.crbegin();

出力

c:3

#include <bits/stdc++.h>
using namespace std;
int main(){
   //create the container
   multimap<int, int> mul;
   //insert using emplace
   mul.emplace_hint(mul.begin(), 1, 10);
   mul.emplace_hint(mul.begin(), 2, 20);
   mul.emplace_hint(mul.begin(), 2, 30);
   mul.emplace_hint(mul.begin(), 1, 40);
   mul.emplace_hint(mul.begin(), 1, 50);
   mul.emplace_hint(mul.begin(), 5, 60);
   auto it = mul.crbegin();
   cout<<"Last element using crbegin() is: {"<<it->first<< ", " << it->second << "}\n";
   cout <<"\nElements in multimap is : \n";
   cout << "KEY\tELEMENT\n";
   for (auto i = mul.crbegin(); i!= mul.crend(); i++){
      cout << i->first << "\t" << i->second << endl;
   }
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

Last element using crbegin() is: {5, 60}
Elements in multimap is :
KEY ELEMENT
5 60
2 20
2 30
1 10
1 40
1 50

multimap ::crend()とは何ですか?

multimap ::crend()関数は、C ++ STLに組み込まれている関数であり、 ヘッダーファイルで定義されています。 crend()は、一定の逆端イテレータを意味します。これは、一定の逆イテレータであったcendの逆であることを意味します。つまり、関数crend()は、関連付けられたコンテナの最初の位置の直前の位置を指しているイテレータを返します。関数で。このイテレータを使用してマルチマップを変更することはできません。これは、マルチマップコンテナをトラバースするために使用できます。

構文

newmultimap.crend();

パラメータ

この関数はパラメータを受け入れません。

戻り値

関連するコンテナの前の最初の要素を指すイテレータを返します。

入力

multimap<char, int&lgt; newmap;
newmap(make_pair(‘a’, 1));
newmap(make_pair(‘b’, 2));
newmap(make_pair(‘c’, 3));
newmap.crend();

出力

error
#include <bits/stdc++.h>
using namespace std;
int main(){
   //create the container
   multimap<int, int> mul;
   //insert using emplace
   mul.emplace_hint(mul.begin(), 1, 10);
   mul.emplace_hint(mul.begin(), 2, 20);
   mul.emplace_hint(mul.begin(), 2, 30);
   mul.emplace_hint(mul.begin(), 1, 40);
   mul.emplace_hint(mul.begin(), 1, 50);
   mul.emplace_hint(mul.begin(), 5, 60);
   cout << "\nElements in multimap is : \n";
   cout << "KEY\tELEMENT\n";
   for (auto i = mul.crbegin(); i!= mul.crend(); i++){
      cout <<<; i->first << "\t" << i->second < endl;
   }
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

Elements in multimap is :
KEY ELEMENT
5 60
2 20
2 30
1 10
1 40
1 50

  1. C++STLのArray::crbegin()とarray ::crend()?

    ここでは、C ++ STLの配列のcrbegin()関数とcrend()関数を確認します。 array ::crbegin()関数は、逆イテレータを取得するために使用されます。コンテナの最後の要素を指す定数逆イテレータを返します。この関数はパラメータを取りません。 array ::crend()関数はcrbegin()の逆です。これにより、逆イテレータの最後の要素を指しているイテレータが返されます。 より良いアイデアを得るために、いくつかのコード例を見てみましょう。 例 #include<iostream> #include<array> using namesp

  2. C++STLのマップおよびマルチマップの降順

    一般に、マップおよびマルチマップマップのデフォルトの動作は、要素を昇順で格納することです。ただし、大きい関数を使用すると、要素を降順で格納できます。 降順の地図: 関数はここで使用されます- m ::find() –見つかった場合は、マップ内のキー値「b」を持つ要素にイテレータを返します。それ以外の場合は、終了するイテレータを返します。 m ::Erase() –マップからキー値を削除します。 m ::equal_range() –ペアのイテレータを返します。ペアは、キーと同等のキーを持つコンテナ内のすべての要素を含む範囲の境界を指します。 m insert