logo

UNORDERED_MAP C++:ssa

The tilaamaton kartta on yhdistetty säilö, joka sisältää elementtejä, jotka on luotu yhdistämällä yhdistetty arvo avainarvoon. Elementti tunnistetaan erityisesti sen perusteella avainarvo , ja kartoitettu arvo on avaimeen liittyvä sisältö. Avaimet ja arvot voivat olla mitä tahansa vakiintuneita tai käyttäjän määrittämä tyyppi . Järjestämätön kartta voidaan ajatella sanakirjatyyppisenä tietorakenteena, joka tallentaa elementtejä itsessään. Se pitää sisällään peräkkäiset parit (avain, arvo) mahdollistaa tietyn elementin nopean haun käyttämällä sen yksittäistä avainta.

Kartan avain on tiivistetty hash-taulukon indekseihin, minkä vuoksi tietorakenteen nopeus riippuu suuresti hash-funktiosta, mutta keskimäärin etsi, lisää ja poista hash-taulukosta on o(1).

Pahimmassa tapauksessa, varsinkin suurille alkukokonaisluvuille, sen aika monimutkaisuus voi vaihdella o(1) kohtaan päällä) . Tässä tapauksessa on erittäin suositeltavaa käyttää karttaa tle:n vastaanottamisen välttämiseksi (aikaraja ylitetty) ongelma.

css tasaus kuvat

Syntaksi:

 Unordered_mapumap 

Esimerkki:

 //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<<>

Selitys:

Tämä tulos oikeuttaa erityisesti sen tosiasian, että tilaamattomia karttoja lähtöarvo generoidaan satunnaisesti avain arvoon tavalla, kun kartta näyttää arvon ja avaimen järjestyksessä.

Järjestämätön sarja vs. järjestämätön kartta

Joitakin eroja järjestämättömän joukon ja järjestämättömän kartan välillä ovat seuraavat:

Järjestämätön kartta

  • Vain (avainarvo) pareja löytyy an elementeistä tilaamaton kartta .
  • Käytä operaattoria '[]' avaimen vastaavan arvon poimimiseksi kartasta.

Tilaamaton setti

    Avainarvo Pareja käytetään enimmäkseen määrittämään, onko joukko olemassa vai poissa, eivätkä ne aina ole läsnä järjestämättömässä joukossa.
  • Käyttämällä Find()-funktio , elementtiä etsitään. Operaattoria ei siis tarvita.

Tärkeä pointti:

Otetaan esimerkiksi kysymys yksittäisten sanojen tiheyden laskemisesta. Koska lukuja ei voi tallentaa tilaamaton sarja (tai sarja), meidän on sen sijaan käytettävä järjestämätöntä karttaa.

Kartta vs. järjestämätön kartta

Joitakin eroja kartan ja järjestämättömän kartan välillä ovat seuraavat:

Järjestämätön kartta

  • Mitä tahansa tilausta voidaan käyttää tilaamattoman kartta-avaimen tallentamiseen.
  • Järjestämättömän kartan toteutus johtaa epätasaiseen puurakenteeseen, mikä tekee syötteiden järjestyksen säilyttämisen mahdottomaksi.
  • Järjestämättömän kartan toiminnoilla on tyypillisesti o(1) ajan monimutkaisuus .

Kartta

  • Kartta on järjestetty luettelo erillisistä avaimista.
  • Elementtien järjestys on mahdollista säilyttää (tietyllä puun läpikulkulla), koska kartta käyttää tasapainoista puurakennetta.
  • Karttatoiminnoissa on o aika monimutkaisuus (log n) .

Järjestämättömän kartan menettelyt

On olemassa lukuisia toimintoja, joita voidaan käyttää järjestämättömän kartan kanssa. Avuksi eniten ovat:

  • Operaattori =
  • Operaattori[]
  • Iteraattorin alku ja loppu
  • Tyhjä
  • Kapasiteetin koko
  • Paikanna ja laske hakua varten.
  • Lisää ja poista

Täydellinen luettelo järjestämättömän kartan menetelmistä näkyy alla:

At():

Tämä c++ järjestämätön karttamenetelmä palaa viittaus arvoon, jossa määritetty elementti on avain k .

java-alimerkkijonomenetelmä

Alkaa():

Se tarjoaa palautusarvon, joka on an iteraattori osoittaa ensimmäiseen merkintään järjestämättömässä karttasäiliössä.

End():

Järjestämätön karttasäiliön ämpäri palauttaa an iteraattori osoittaa viimeisen elementin () jälkeen olevaan paikkaan.

Ämpäri():

Se palauttaa alueen numeron kartan segmenttimäärässä, jossa elementti on avain k on sijoitettu.

Bucket_count()

Järjestämättömän kartan kauhojen kokonaismäärä on laskettu yhteen käyttämällä ämpärilaskentatoimintoa. Sitä voidaan kutsua ilman parametrien välittämistä.

Kauhan koko

Se antaa järjestämättömän kartan elementtimäärän kullekin ämpäri () .

Kreivi()

yhdistävä lajittelu

Se antaa järjestämättömän kartan elementtimäärän kullekin ämpäri () Järjestämättömän kartan elementtien määrä määritetyllä avainalueella on laskettava.

verkkoarkkitehtuuri

equal_range()

Se palauttaa alueen rajat, joka sisältää kaikki säilön kohteet ja avaimen, johon verrataan k .

Löytö()

Antaa elementin tyhjälle iteraattorin.

Sijainti ()

Se määrittää, onko järjestämättömän karttasäilön kontti tyhjä.

Poista ()

Järjestämättömän karttasäiliön elementit voidaan poistaa käyttämällä Erase() toiminto.

Vaikka sisäisen segmentin koon, segmenttien lukumäärän, käytetyn hash-toiminnon ja erilaisten hash-käytäntöjen tarkastelutoiminnot tarjoavat myös c++11-kirjasto , niistä on vähemmän hyötyä käytännön sovelluksissa. Iteraattoria käyttämällä saatamme käydä läpi järjestämättömän kartan jokaisen elementin.

Esimerkki:

 #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></\'>

Esimerkki:

 // 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>