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

C ++ STLでvalue_comp()をマップします


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

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

マップは連想コンテナであり、キー値とマップされた値の組み合わせによって形成された要素を特定の順序で格納するのを容易にします。マップコンテナでは、データは常に関連するキーを使用して内部的に並べ替えられます。マップコンテナの値には、一意のキーからアクセスします。

map ::value_comp()とは何ですか?

map ::value_comp()は、 ヘッダーファイルで宣言されているC++STLの組み込み関数です。 value_comp()は、比較のためにマップコンテナによって使用される比較オブジェクトのコピーを返します。デフォルトでは、このオブジェクトは演算子のオブジェクトよりも小さく、演算子よりも小さくなります。

これは、特定のセット内の同じタイプの2つの値の比較を行い、最初の要素がコンテナー内の2番目の要素よりも小さい場合はtrueを返し、そうでない場合はfalseを返す関数ポインターまたは関数オブジェクトのタイプです。

構文

Map_name.value_comp(key& k);

パラメータ

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

戻り値

この関数は、関連付けられたセットコンテナの比較オブジェクトを返します。

入力

map<char, int> newmap;
newmap[‘a’] = 1;
newmap[‘b’] = 2;
newmap[‘c’] = 3;
set<int>::value_compare cmp = myset.value_comp()

出力

1
2
3

#include <iostream>
#include <map>
using namespace std;
int main() {
   map<char, int> TP = {
      { 'a', 10 },
      { 'b', 20 },
      { 'c', 30 },
      { 'd', 40 },
      { 'e', 50 },
   };
   auto temp = *TP.rbegin();
   auto i = TP.begin();
   cout <<"Elements in map are : \n";
   do {
      cout<< i->first << " = " << i->second<< endl;
   } while (TP.value_comp()(*i++, temp));
   return 0;
}

出力

Elements in map are :
a = 10
b = 20
c = 30
d = 40
e = 50

  1. C++STLでのセットとマップ

    Setは抽象データ型であり、要素の値によって要素が識別されるため、各要素は一意である必要があります。要素の値は、セットに追加されると変更できませんが、その要素の変更された値を削除して追加することはできます。 マップは、マップされた方法で要素を格納する連想コンテナです。各要素には、キー値とマップされた値があります。 2つのマップされた値が同じキー値を持つことはできません。 したがって、上記から明らかなように、setには唯一のキーが含まれ、mapにはキーを持つ値が含まれ、どちらも一意でソートされた値を持つ必要があります。 順序付けされていない要素と並べ替えられていない要素には、unorder

  2. STLにマップを実装するC++プログラム

    マップは、マップされた方法で要素を格納する連想コンテナです。各要素には、キー値とマップされた値があります。 2つのマップされた値が同じキー値を持つことはできません。 ここで使用される関数: m ::find()–見つかった場合は、マップ内のキー値「b」を持つ要素にイテレータを返します。それ以外の場合は、終了するイテレータを返します。 m ::Erase()–マップからキー値を削除します。 m ::equal_range()–ペアのイテレータを返します。ペアは、キーと同等のキーを持つコンテナ内のすべての要素を含む範囲の境界を指します。 m insert()–マップコンテ