logo

UNORDERED_MAP EN C++

El mapa no ordenat és un contenidor associat que conté elements creats fusionant un valor assignat amb un valor clau. L'element s'identifica específicament pel seu valor clau , i la valor mapejat és el contingut relacionat amb la clau. Tant les claus com els valors poden ser de qualsevol establert o tipus definit per l'usuari . Un mapa no ordenat es pot considerar com una estructura de dades del tipus diccionari que emmagatzema elements dins de si mateix. Els parells seqüencials que conté (clau, valor) permetre la recuperació ràpida d'un element específic mitjançant la seva clau individual.

La clau subministrada al mapa és triturat als índexs d'una taula hash, és per això que la velocitat de l'estructura de dades depèn en gran mesura de la funció hash, però, de mitjana, el cost de cercar, inserir i eliminar de la taula hash és o(1).

En el pitjor dels casos, especialment per a nombres enters primers grans, és complexitat temporal pot variar des de o (1) a o(n) . És molt recomanable utilitzar un mapa en aquest cas per evitar rebre-ne (s'ha superat el límit de temps) assumpte.

convertir la cadena a jsonobject java

Sintaxi:

 Unordered_mapumap 

Exemple:

 //A c++ program to check an unordered map in it. #include #include using namespace std; int main() { unordered_mapumap; umap[&apos;javatpoint&apos;] = 20; umap[&apos;regular&apos;] = 30; umap[&apos;distribute&apos;] = 40; for (auto y :umap) cout&lt;<y.first<< ' << y.second<<endl; } < pre> <p> <strong>Output</strong> </p> <pre> Distribute 40 Regular 30 Javatpoint 20 </pre> <p> <strong>Explanation:</strong> </p> <p>This output specifically justifies the fact that the <strong> <em>unordered map&apos;s</em> </strong> output value is generated in a random <strong> <em>key-to-value</em> </strong> manner while the map shows value and key in an ordered fashion.</p> <h2>Unordered set vs Unordered map</h2> <p>Some differences between Unordered set and Unordered map are as follows:</p> <h3>Unordered map</h3> <ul> <li>Only <strong> <em>(key-value)</em> </strong> pairs are found in the elements of an <strong> <em>unordered map</em> </strong> .</li> <li>Use the operator <strong>&apos;[]&apos;</strong> to extract a key&apos;s corresponding value from a map.</li> </ul> <h3>Unordered set</h3> <ul> <tr><td> <em>Key-value</em> </td> pairs are mostly utilised to determine whether a set is present or absent and are not always present in an unordered set. <li>Using the <strong> <em>find() function</em> </strong> , an element is searched for. Thus, there is no need for an operator.</li> </tr></ul> <p> <strong>Important point:</strong> </p> <p>For instance, take the issue of counting the frequency of individual words. Since, counts cannot be stored in <strong> <em>unordered set (or set),</em> </strong> we must instead use unordered map.</p> <h2>Map vs. Unordered map</h2> <p>Some differences between the Map and Unordered map are as follows:</p> <h3>Unordered map</h3> <ul> <li>Any order may be used to store the unordered map key.</li> <li>The implementation of unordered map results in an uneven tree structure, making it impossible to retain the order of the entries.</li> <li>Operations on an unordered map typically have an <strong> <em>o(1) time complexity</em> </strong> .</li> </ul> <h3>Map</h3> <ul> <li>The map is an ordered list of distinct keys.</li> <li>It is possible to preserve the elements&apos; order (by specific tree traversal) because map uses a balanced tree structure.</li> <li>The map operations have an <strong> <em>o time complexity (log n)</em> </strong> .</li> </ul> <h2>Procedures for unordered map</h2> <p>There are numerous functions that can be used with unordered map. The ones who are most helpful are:</p> <ul> <li>Operator =</li> <li>Operator[]</li> <li>Beginning and ending of the iterator</li> <li>Empty</li> <li>Size of the capacity</li> <li>For a lookup, locate and count.</li> <li>Insert and delete</li> </ul> <p>The full list of an unordered map&apos;s methods is shown below:</p> <p> <strong>At():</strong> </p> <p>This c++ unordered map method <strong> <em>returns</em> </strong> a reference to the value with the specified element as the <strong> <em>key k</em> </strong> .</p> <p> <strong>Begin():</strong> </p> <p>It provides a return value that is an <strong> <em>iterator pointing</em> </strong> to the first entry in the unordered map container.</p> <p> <strong>End():</strong> </p> <p>The unordered map container bucket returns an <strong> <em>iterator pointing</em> </strong> to the location after the final element ().</p> <p> <strong>Bucket():</strong> </p> <p>It returns the bucket number in the map&apos;s bucket count where the element with <strong> <em>key k</em> </strong> is placed.</p> <p> <strong>Bucket_count()</strong> </p> <p>The unordered map&apos;s total number of buckets is <strong> <em>tallied</em> </strong> using the bucket count function. It can be called without passing any parameters.</p> <p> <strong>Bucket size</strong> </p> <p>It gives the unordered map count&apos;s element count for each <strong> <em>bucket ()</em> .</strong> </p> <p> <strong>Count()</strong> </p> <p>It gives the unordered map count&apos;s element count for each <strong> <em>bucket ()</em> </strong> the number of elements in an unordered map with the specified key equal range should be counted.</p> <p> <strong>Equal_eange()</strong> </p> <p>It returns the boundaries of a range with all the container&apos;s items and a key that compares to <strong> <em>k</em> </strong> .</p> <p> <strong>Find()</strong> </p> <p>Gives an iterator to the element&apos;s empty.</p> <p> <strong>Position ()</strong> </p> <p>It determines whether the unordered map container&apos;s container is empty.</p> <p> <strong>Erase()</strong> </p> <p>Elements in the unordered map container can be deleted using the <strong> <em>erase()</em> </strong> function.</p> <p>Although the functions to view the internal bucket size, bucket count, used hash function, and various hash policies are also provided by the <strong> <em>c++11 library</em> </strong> , they are less helpful in practical applications. Using iterator, we may loop through every element in the unordered map.</p> <h3>Example:</h3> <pre> #include #include using namespace std; int main() { // when we will declare a umap it must be of type and here the key will be of string type and the mapped value of double in nature unordered_mapumap = { //in this we will insert the element in map directly {&apos;one&apos;, 1}, {&apos;two&apos;, 2}, {&apos;three&apos;, 3} }; // here wi will insert the values by the help of the [] operator umap[&apos;the value of pi&apos;] = 3.14; umap[&apos;the value of root2&apos;] = 1.414; umap[&apos;the value ofroot3&apos;] = 1.732; umap[&apos;the value oflog10&apos;] = 2.302; umap[&apos;the value ofloge&apos;] = 1.0; // inserting value by insert function umap.insert(make_pair(&apos;e&apos;, 2.718)); string key = &apos;the value of pi&apos;; // if key not found in map iterator // to end is returned if (umap.find(key) == umap.end()) cout&lt;&lt; key &lt;<' cannot retrieved

'; if key found then iterator to that is returned else cout<< 'retrieved '<< << '

'; ; (umap.find(key)="=" umap.end()) <<' retrieved
'; 'found <<endl; now we will iterate over all value of umap unordered_map::iterator itr; '
the entire elements : 
'; for (itr="umap.begin();" itr !="umap.end();" itr++) { cout<first ' <second } return 0; < pre> <p> <strong>Output</strong> </p> <pre> Retrieved the value of pi Lambda value cannot retrieved The entire elements : E 2.718 The value ofloge 1 The value oflog10 2.302 The value of root2 1.414 The value ofroot3 1.732 The value of pi 3.14 Two 2 Three 3 One 1 </pre> <h3>Example:</h3> <pre> // It is a c++ program to find rhefreqency of it ,in this we will use of unordered_map of every word #include using namespace std; void printfrequencies(const string &amp;str) { unordered_mapwordfreq; stringstream ss(str); string word; while (ss&gt;&gt; word) wordfreq[word]++; unordered_map:: iterator q; for (q = wordfreq.begin(); q != wordfreq.end(); q++) cout&lt;&lt; &apos;(&apos; <first << ', ' <second ')
'; } int main() { string str="java t points questions " 'learn programs'; printfrequencies(str); return 0; < pre> <p> <strong>Output</strong> </p> <pre> (programs, 1) (learn, 1) (questions, 1) (t, 1) (points, 1) (java, 1) </pre> <hr></first></pre></'></pre></y.first<<>

Explicació:

Aquesta sortida justifica específicament el fet que el mapes no ordenats el valor de sortida es genera de manera aleatòria clau-valor mentre que el mapa mostra valor i clau de manera ordenada.

Conjunt no ordenat vs mapa no ordenat

Algunes diferències entre el conjunt no ordenat i el mapa no ordenat són les següents:

Mapa no ordenat

  • Només (clau-valor) les parelles es troben en els elements d'an mapa no ordenat .
  • Utilitzeu l'operador '[]' per extreure el valor corresponent d'una clau d'un mapa.

Conjunt no ordenat

    Clau-valor Els parells s'utilitzen principalment per determinar si un conjunt és present o absent i no sempre estan presents en un conjunt no ordenat.
  • Utilitzant el Funció find(). , es cerca un element. Per tant, no hi ha necessitat d'un operador.

Punt important:

Per exemple, prenem el tema de comptar la freqüència de paraules individuals. Com que, els recomptes no es poden emmagatzemar conjunt no ordenat (o conjunt), hem d'utilitzar un mapa no ordenat.

Mapa vs. mapa no ordenat

Algunes diferències entre el mapa i el mapa no ordenat són les següents:

Mapa no ordenat

  • Qualsevol ordre es pot utilitzar per emmagatzemar la clau del mapa no ordenada.
  • La implementació d'un mapa no ordenat dóna lloc a una estructura d'arbre desigual, cosa que fa impossible mantenir l'ordre de les entrades.
  • Les operacions en un mapa no ordenat solen tenir un o (1) complexitat temporal .

Mapa

  • El mapa és una llista ordenada de claus diferents.
  • És possible preservar l'ordre dels elements (per un recorregut d'arbre específic) perquè el mapa utilitza una estructura d'arbre equilibrada.
  • Les operacions de mapes tenen un o complexitat temporal (log n) .

Procediments per al mapa no ordenat

Hi ha nombroses funcions que es poden utilitzar amb un mapa no ordenat. Els que són més útils són:

  • Operador =
  • Operador[]
  • Inici i final de l'iterador
  • Buit
  • Mida de la capacitat
  • Per a una cerca, localitza i compta.
  • Inserir i eliminar

La llista completa dels mètodes d'un mapa no ordenat es mostra a continuació:

A():

Aquest mètode de mapa no ordenat de C++ torna una referència al valor amb l'element especificat com a clau k .

variable java variable

Comença ():

Proporciona un valor de retorn que és un iterador apuntant a la primera entrada del contenidor del mapa no ordenat.

Final():

El contenidor del contenidor de mapes no ordenat retorna un iterador apuntant a la ubicació després de l'element final ().

Cubell():

Retorna el número de cub al recompte de cubs del mapa on hi ha l'element clau k es col·loca.

Bucket_count()

El nombre total de cubs del mapa no ordenat és comptat utilitzant la funció de recompte de cubs. Es pot cridar sense passar cap paràmetre.

Mida de la galleda

Proporciona el recompte d'elements del mapa no ordenat per a cadascun cubell () .

Recompte()

lleó en comparació amb un tigre

Proporciona el recompte d'elements del recompte del mapa no ordenat per a cadascun cubell () s'ha de comptar el nombre d'elements d'un mapa no ordenat amb l'interval de clau especificat igual.

què vol dir això xd

rang_igual()

Retorna els límits d'un rang amb tots els elements del contenidor i una clau que es compara amb k .

Cerca ()

Ofereix un iterador al buit de l'element.

Posició ()

Determina si el contenidor del contenidor del mapa no ordenat està buit.

Esborra ()

Els elements del contenidor de mapes no ordenats es poden suprimir mitjançant l' esborra () funció.

Tot i que les funcions per veure la mida interna del cub, el recompte del cub, la funció hash utilitzada i diverses polítiques hash també les proporciona el biblioteca c++11 , són menys útils en aplicacions pràctiques. Utilitzant un iterador, podem recórrer tots els elements del mapa no ordenat.

Exemple:

 #include #include using namespace std; int main() { // when we will declare a umap it must be of type and here the key will be of string type and the mapped value of double in nature unordered_mapumap = { //in this we will insert the element in map directly {&apos;one&apos;, 1}, {&apos;two&apos;, 2}, {&apos;three&apos;, 3} }; // here wi will insert the values by the help of the [] operator umap[&apos;the value of pi&apos;] = 3.14; umap[&apos;the value of root2&apos;] = 1.414; umap[&apos;the value ofroot3&apos;] = 1.732; umap[&apos;the value oflog10&apos;] = 2.302; umap[&apos;the value ofloge&apos;] = 1.0; // inserting value by insert function umap.insert(make_pair(&apos;e&apos;, 2.718)); string key = &apos;the value of pi&apos;; // if key not found in map iterator // to end is returned if (umap.find(key) == umap.end()) cout&lt;&lt; key &lt;<\' cannot retrieved

\'; if key found then iterator to that is returned else cout<< \'retrieved \'<< << \'

\'; ; (umap.find(key)="=" umap.end()) <<\' retrieved
\'; \'found <<endl; now we will iterate over all value of umap unordered_map::iterator itr; \'
the entire elements : 
\'; for (itr="umap.begin();" itr !="umap.end();" itr++) { cout<first \' <second } return 0; < pre> <p> <strong>Output</strong> </p> <pre> Retrieved the value of pi Lambda value cannot retrieved The entire elements : E 2.718 The value ofloge 1 The value oflog10 2.302 The value of root2 1.414 The value ofroot3 1.732 The value of pi 3.14 Two 2 Three 3 One 1 </pre> <h3>Example:</h3> <pre> // It is a c++ program to find rhefreqency of it ,in this we will use of unordered_map of every word #include using namespace std; void printfrequencies(const string &amp;str) { unordered_mapwordfreq; stringstream ss(str); string word; while (ss&gt;&gt; word) wordfreq[word]++; unordered_map:: iterator q; for (q = wordfreq.begin(); q != wordfreq.end(); q++) cout&lt;&lt; &apos;(&apos; <first << \', \' <second \')
\'; } int main() { string str="java t points questions " \'learn programs\'; printfrequencies(str); return 0; < pre> <p> <strong>Output</strong> </p> <pre> (programs, 1) (learn, 1) (questions, 1) (t, 1) (points, 1) (java, 1) </pre> <hr></first></pre></\'>

Exemple:

 // It is a c++ program to find rhefreqency of it ,in this we will use of unordered_map of every word #include using namespace std; void printfrequencies(const string &amp;str) { unordered_mapwordfreq; stringstream ss(str); string word; while (ss&gt;&gt; word) wordfreq[word]++; unordered_map:: iterator q; for (q = wordfreq.begin(); q != wordfreq.end(); q++) cout&lt;&lt; &apos;(&apos; <first << \', \' <second \')
\'; } int main() { string str="java t points questions " \'learn programs\'; printfrequencies(str); return 0; < pre> <p> <strong>Output</strong> </p> <pre> (programs, 1) (learn, 1) (questions, 1) (t, 1) (points, 1) (java, 1) </pre> <hr></first>