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

C++STLのmultimap::emplace_hint()


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

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

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

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

emplace_hint()関数は、C ++ STLに組み込まれている関数であり、 ヘッダーファイルで定義されています。この関数は、位置を指定してマルチマップコンテナに新しい要素を挿入します。 emplace_hint()では、位置を指定して要素を渡します。位置はヒントとして機能します。この関数はemplace()に似ていますが、値を挿入するための位置ヒントを指定する点が異なります。この関数は、マルチセットコンテナのサイズも1つ増やします。

構文

multimap_name.emplace_hint(iterator pos, Args& val);

パラメータ

この関数は、次のパラメーターを受け入れます-

  • pos −これは、位置のヒントを与えるために使用されるイテレータタイプの引数です。

  • val −これは挿入したい要素です。

戻り値

この関数は、要素が配置/挿入された位置にイテレータを返します。

入力

std::multimap<char, int> odd, eve;
odd.insert({‘a’, 1});
odd.insert({‘b’, 3});
odd.insert({‘c’, 5});
odd.emplace_hint(odd.end(), {‘d’, 7});

出力

Odd: a:1 b:3 c:5 d:7

Code:
#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(), 3, 30);
   mul.emplace_hint(mul.begin(), 1, 40);
   mul.emplace_hint(mul.begin(), 4, 50);
   mul.emplace_hint(mul.begin(), 5, 60);
   cout << "\nElements in multimap is : \n";
   cout << "KEY\tELEMENT\n";
   for (auto i = mul.begin(); i!= mul.end(); i++){
      cout << i->first << "\t" << i->second << endl;
   }
   return 0;
}

出力

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

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

  1. C ++ STLでemplace_hint()関数をマップします

    この記事では、C++STLでのmap::emplace_hint()関数の動作、構文、および例について説明します。 C ++ STLのマップとは何ですか? マップは連想コンテナであり、キー値とマップされた値の組み合わせによって形成された要素を特定の順序で格納するのを容易にします。マップコンテナでは、データは常に関連するキーを使用して内部的に並べ替えられます。マップコンテナの値には、一意のキーからアクセスします。 map ::emplace_hint()とは何ですか? map ::emplace_hint()は、ヘッダーファイルの下にある関数です。この関数は、ヒントを含む要素を作成して、

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

    マルチマップは、複数の要素が同じキーを持つことができることを除いて、マップに似ています。キー値とマップされた値のペアは、マルチマップで一意である必要があります。 関数はここで使用されます- mm ::find()–見つかった場合はマルチマップ内のキー値「b」の要素にイテレータを返します。それ以外の場合は終了するイテレータを返します。 mm ::Erase()–マルチマップからキー値を削除します。 mm ::equal_range()–ペアのイテレータを返します。ペアは、キーと同等のキーを持つコンテナ内のすべての要素を含む範囲の境界を指します。 mm insert()