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

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


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

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

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

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

map ::emplace()は、 ヘッダーファイルの下にある関数です。この関数は、要素を作成して、関連付けられたマップコンテナに挿入します。

emplace()は、配置される要素のキーが一意である場合に新しい要素を挿入します。挿入は、挿入される値と同じキーを持つ要素がない場合にのみ発生します。この関数は、既存のオブジェクトをコピーしてコンテナに移動するinsert()と同じように機能します。

要素が正常に挿入されると、コンテナのサイズが1増加します

構文

map_name.emplace(Args&& args);

パラメータ

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

引数 −配置または挿入する引数または値。

戻り値

挿入が成功すると、関数は挿入された新しい要素を指すイテレータを返します。それ以外の場合は、イテレータをコンテナにすでに存在する同等の値に戻します。

入力

map<char, int> newmap;
emplace( ‘a’, 1);

出力

a

#include <bits/stdc++.h>
using namespace std;
int main() {
   map<int, int> TP_Map;
   TP_Map.emplace(4, 50);
   TP_Map.emplace(2, 30);
   TP_Map.emplace(1, 10);
   TP_Map.emplace(1, 20);
   TP_Map.emplace(1, 30);
   cout<<"TP Map is : \n";
   cout << "MAP_KEY\tMAP_ELEMENT\n";
   for (auto i = TP_Map.begin(); i!= TP_Map.end(); i++)
      cout << i->first << "\t" << i->second << endl;
   return 0;
}

出力

TP Map is:
MAP_KEY    MAP_ELEMENT
1             10
2             30
4             50

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

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

  2. C++STLでの配置と挿入

    emplace操作は、オブジェクトの不要なコピーを回避し、挿入操作よりも効率的に挿入を行います。挿入操作はオブジェクトへの参照を取ります。 アルゴリズム Begin Declare set. Use emplace() to insert pair. Use insert() to insert pair by using emplace(). Print the set. End サンプルコード #include<bits/stdc++.h> using namespace std; int main() {    set<pai