Jadual Kandungan
Sintaks untuk mentakrifkan struktur data peta
Kemas kini sintaks elemen dalam peta
Algoritma
Contoh
Output
Kemas kini selepas carian
Kesimpulan
Rumah pembangunan bahagian belakang C++ Program C++ untuk mengemas kini nilai kamus mengikut kunci

Program C++ untuk mengemas kini nilai kamus mengikut kunci

Aug 28, 2023 pm 10:37 PM
c program kemas kini kunci Kemas kini nilai kamus

Program C++ untuk mengemas kini nilai kamus mengikut kunci

Banyak bahasa komputer menyediakan kamus, iaitu struktur data. Kamus ialah struktur data yang lebih pantas yang menyimpan data berdasarkan kunci dan nilai. Ia mengekalkan kombinasi nilai kunci supaya kunci boleh dicari dengan mudah untuk komponen tertentu dalam hampir masa nyata. Standard bahasa C++ STL termasuk struktur data seperti kamus. Istilah "map" digunakan untuk menerangkan struktur data ini. Peta ini mencipta sepasang kunci dan nilai apa-apa jenis (memandangkan kami menggunakan C++, jenis mesti ditakrifkan sebelum penyusunan). Bahagian ini menunjukkan cara mengemas kini nilai dalam peta atau kamus sedia ada dalam C++.

Mari kita lihat dulu definisi struktur data peta. Templat dalaman ini memerlukan dua jenis berbeza. Sintaks dan perpustakaan yang diperlukan ditunjukkan di bawah -

Sintaks untuk mentakrifkan struktur data peta

#include <map>
map<type1, type2=""> mapVariable;
</type1,></map>
Salin selepas log masuk

Dalam kes ini, kita perlu mengimport perpustakaan "peta" untuk menggunakan struktur data peta. Jenis data 1 dan 2 diperlukan untuk ini. Jenis data parameter utama ialah jenis1, dan jenis data parameter nilai ialah jenis2. Di sini objek yang diperoleh daripada kelas jenis peta ialah mapVariable. Sekarang mari kita lihat cara mendapatkannya menggunakan pemetaan C++.

Dalam struktur data peta kita boleh meletakkan nilai ke dalam peta dengan mengakses kunci sedia ada atau kunci baharu. Oleh kerana kita bercakap tentang mengemas kini nilai di sini, kita perlu mengemas kini kunci sedia ada. Kekunci akan digunakan dalam kurungan segi empat sama seperti tatatanda indeks tatasusunan. Mari lihat sintaks ini -

Kemas kini sintaks elemen dalam peta

mapVariable [<the key="" value="">] = <the new="" value="">;
</the></the>
Salin selepas log masuk

Algoritma

  • Mencipta kamus atau peta D

  • Sudah ada nilai kunci k

  • Nilai v

  • kunci baharu k
  • Kemas kini seperti D[ k ] = v

  • Kembali ke D

Contoh

#include <iostream> 
#include <map> 
using namespace std;

void display( map <string, int>& givenMap ){
   for ( auto& it : givenMap ) {
      cout << "Key: " << it.first << ", value: " << it.second << endl;
   }
}
   
int main(){ 
   map<string, int> givenMap;
   
   givenMap = { { "ABCD", 25 },
        { "EFGH", 50 },
        { "IJKL", 75 },
        { "MNOP", 100 },
        { "QRST", 125 }
   };
   
   cout << "Before updation: " << endl;
   display( givenMap );
  
   cout << "After Updation: " << endl;
   
   //update the value of MNOP to 500
   givenMap[ "MNOP" ] = 500; 
   display( givenMap );
}
Salin selepas log masuk

Output

Before updation: 
Key: ABCD, value: 25
Key: EFGH, value: 50
Key: IJKL, value: 75
Key: MNOP, value: 100
Key: QRST, value: 125
After Updation: 
Key: ABCD, value: 25
Key: EFGH, value: 50
Key: IJKL, value: 75
Key: MNOP, value: 500
Key: QRST, value: 125
Salin selepas log masuk

Dalam kaedah ini, kami berjaya mengemas kini nilai dengan mengakses parameter utama. Walau bagaimanapun, proses ini mungkin tidak selalu tepat. Prosedur ini mempunyai kelemahan yang serius, iaitu kunci yang diberikan mungkin tidak wujud dalam peta. Tetapi dengan menggunakan proses ini ia akan memasukkan kunci baru dengan nilai yang diberikan. Jadi dalam kaedah seterusnya kita akan melihat cara mencari dan mengemas kini elemen selepas carian berjaya.

Kemas kini selepas carian

Anda boleh menggunakan fungsi find() dalam objek peta untuk menyemak sama ada kunci tertentu wujud dalam peta. Ia akan mengembalikan rujukan penuding kepada kunci, jika tidak, ia akan mengembalikan penuding "end()" ke peta, yang menunjukkan bahawa peta tidak mengandungi unsur di dalamnya. Mari kita lihat algoritma dan pelaksanaan untuk pemahaman yang lebih baik.

Algoritma

  • Mencipta kamus atau peta D

  • Sudah ada nilai kunci k

  • Nilai v

  • kunci baharu k
  • Buat objek iterator itr untuk mendapatkan penunjuk pasangan nilai kunci

  • Panggil kaedah find() untuk memasukkan kamus D ke dalam itr

  • Jika itr bukan penghujung D, yang bermaksud kunci itu wujud, maka

    • Masukkan v ke dalam itr

  • Tamat jika

Contoh

#include <iostream> 
#include <map> 
using namespace std;

void display( map <string, int>& givenMap ){
   for ( auto& it : givenMap ) {
      cout << "Key: " << it.first << ", value: " << it.second << endl;
   }
}

void updateElement( map <string, int>& givenMap, string givenKey, int newValue ){
   map <string, int>::iterator itr;
   itr = givenMap.find( givenKey );
   if( itr != givenMap.end() ){   // when item has found
      itr->second = newValue;
   }
}
   
int main(){ 
   map<string, int> givenMap;
   
   givenMap = { { "ABCD", 25 },
        { "EFGH", 50 },
        { "IJKL", 75 },
        { "MNOP", 100 },
        { "QRST", 125 }
   };
   
   cout << "Before updation: " << endl;
   display( givenMap );
  
   cout << "After Updation: " << endl;
   
   //update the value of MNOP to 500
   updateElement( givenMap, "MNOP", 1580 );
   display( givenMap );
}
Salin selepas log masuk

Output

Before updation: 
Key: ABCD, value: 25
Key: EFGH, value: 50
Key: IJKL, value: 75
Key: MNOP, value: 100
Key: QRST, value: 125
After Updation: 
Key: ABCD, value: 25
Key: EFGH, value: 50
Key: IJKL, value: 75
Key: MNOP, value: 1580
Key: QRST, value: 125
Salin selepas log masuk

Dalam kaedah ini, fungsi updateElement mengambil sebagai input peta, kunci sedia ada dan newValue. Kemudian cari kunci itu. Hanya kemas kini nilai jika ia wujud, jika tidak, dapatkannya dari fungsi. Jadi dengan menggunakan kaedah ini kita tidak boleh membuat entri baharu dalam peta tetapi hanya boleh mengemas kini entri sedia ada.

Kesimpulan

Dalam artikel ini kami mempelajari cara mengemas kini elemen dalam peta menggunakan kekunci. Dalam kaedah pertama, kami menggunakan kaedah penugasan langsung, yang berjaya mengemas kini elemen, tetapi ia juga boleh menambah elemen baharu apabila kunci belum wujud lagi. Kaedah kedua menghapuskan masalah ini dengan melakukan carian mudah pada permulaan. Kadangkala kita mungkin perasan bahawa kaedah kedua mengambil masa tambahan untuk mencari kunci dan kemudian mengemas kininya. Oleh itu, ia memerlukan lebih banyak masa carian daripada kaedah pertama. Tetapi jika kita berfikir dengan teliti, dalam kaedah pertama, penemuan ini juga pada dasarnya direalisasikan. Memandangkan struktur data menggunakan teknik berasaskan cincang, ia akan berjalan dalam masa yang tetap (dalam kebanyakan kes).

Atas ialah kandungan terperinci Program C++ untuk mengemas kini nilai kamus mengikut kunci. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Terjemahkan yang berikut ke dalam bahasa Cina: Program C untuk menukar angka Rom kepada nombor perpuluhan Terjemahkan yang berikut ke dalam bahasa Cina: Program C untuk menukar angka Rom kepada nombor perpuluhan Sep 05, 2023 pm 09:53 PM

Diberikan di bawah adalah algoritma bahasa C untuk menukar angka Rom kepada nombor perpuluhan: Algoritma Langkah 1 - Mulakan Langkah 2 - Baca angka Rom pada masa jalan Langkah 3 - Panjang: = strlen(roman) Langkah 4 - Untuk i=0 kepada Length-1 Langkah 4.1-suis(roman[i]) Langkah 4.1.1-case'm': &nbs

Program C++ untuk membandingkan susunan leksikografi dua rentetan Program C++ untuk membandingkan susunan leksikografi dua rentetan Sep 04, 2023 pm 05:13 PM

Perbandingan rentetan leksikografi bermaksud rentetan dibandingkan dalam susunan kamus. Contohnya, jika terdapat dua rentetan 'epal' dan 'rayuan', rentetan pertama akan datang yang terakhir kerana tiga aksara pertama 'aplikasi' adalah sama. Kemudian untuk rentetan pertama aksara ialah 'l' dan dalam rentetan kedua aksara keempat ialah 'e'. Memandangkan 'e' lebih pendek daripada 'l', ia akan didahulukan jika kita menyusun mengikut leksikografi. Rentetan dibandingkan secara leksikografi sebelum disusun. Dalam artikel ini, kita akan melihat teknik yang berbeza untuk membandingkan dua rentetan secara leksikografi menggunakan C++. Menggunakan fungsi compare() dalam rentetan C++ Objek rentetan C++ mempunyai compare()

Program C untuk mencari panjang senarai terpaut Program C untuk mencari panjang senarai terpaut Sep 07, 2023 pm 07:33 PM

Senarai terpaut menggunakan peruntukan memori dinamik, iaitu ia berkembang dan mengecut dengan sewajarnya. Ia ditakrifkan sebagai koleksi nod. Di sini, nod mempunyai dua bahagian, data dan pautan. Data, pautan dan senarai terpaut diwakili seperti berikut - Jenis senarai terpaut Terdapat empat jenis senarai terpaut, seperti berikut: - Senarai pautan tunggal / Senarai pautan tunggal Senarai berganda / Berganda Pekeliling Senarai pautan tunggal Pekeliling Senarai pautan berganda Kami menggunakan kaedah rekursif untuk mencari panjang senarai terpaut Logiknya ialah -intlength(nod *temp){ if(temp==NULL) returnl{&n

Program C menggunakan fungsi rename() untuk menukar nama fail Program C menggunakan fungsi rename() untuk menukar nama fail Sep 21, 2023 pm 10:01 PM

Fungsi nama semula menukar fail atau direktori daripada nama lamanya kepada nama baharunya. Operasi ini serupa dengan operasi bergerak. Jadi kita juga boleh menggunakan fungsi nama semula ini untuk memindahkan fail. Fungsi ini wujud dalam fail pengepala perpustakaan stdio.h. Sintaks fungsi nama semula adalah seperti berikut: intrename(constchar*oldname,constchar*newname); Fungsi rename() fungsi menerima dua parameter. Satu nama lama dan satu lagi nama baru. Kedua-dua parameter adalah penunjuk kepada aksara malar yang mentakrifkan nama lama dan baharu fail. Mengembalikan sifar jika fail berjaya dinamakan semula, jika tidak, mengembalikan integer bukan sifar. Semasa operasi menamakan semula

Program C++ untuk mencari nilai fungsi sinus hiperbolik songsang mengambil nilai yang diberikan sebagai hujah Program C++ untuk mencari nilai fungsi sinus hiperbolik songsang mengambil nilai yang diberikan sebagai hujah Sep 17, 2023 am 10:49 AM

Fungsi hiperbola ditakrifkan menggunakan hiperbola dan bukannya bulatan dan bersamaan dengan fungsi trigonometri biasa. Ia mengembalikan parameter nisbah dalam fungsi sinus hiperbolik dari sudut yang dibekalkan dalam radian. Tetapi lakukan sebaliknya, atau dengan kata lain. Jika kita ingin mengira sudut daripada sinus hiperbolik, kita memerlukan operasi trigonometri hiperbolik songsang seperti operasi sinus songsang hiperbolik. Kursus ini akan menunjukkan cara menggunakan fungsi sinus songsang hiperbolik (asinh) dalam C++ untuk mengira sudut menggunakan nilai sinus hiperbolik dalam radian. Operasi arcsine hiperbolik mengikut formula berikut -$$\mathrm{sinh^{-1}x\:=\:In(x\:+\:\sqrt{x^2\:+\:1})}, Di mana\:In\:is\:logaritma asli\:(log_e\:k)

Program C++ untuk mencetak kamus Program C++ untuk mencetak kamus Sep 11, 2023 am 10:33 AM

Peta ialah sejenis bekas khas dalam C++ di mana setiap elemen adalah sepasang dua nilai, iaitu nilai kunci dan nilai dipetakan. Nilai kunci digunakan untuk mengindeks setiap item, dan nilai yang dipetakan ialah nilai yang dikaitkan dengan kunci. Tidak kira sama ada nilai yang dipetakan adalah unik, kuncinya sentiasa unik. Untuk mencetak elemen peta dalam C++ kita perlu menggunakan iterator. Elemen dalam set item ditunjukkan oleh objek iterator. Iterator digunakan terutamanya dengan tatasusunan dan jenis bekas lain (seperti vektor), dan mereka mempunyai set operasi khusus yang boleh digunakan untuk mengenal pasti elemen tertentu dalam julat tertentu. Iterator boleh dinaikkan atau dikurangkan untuk merujuk elemen berbeza yang terdapat dalam julat atau bekas. Peulang menunjuk ke lokasi memori elemen tertentu dalam julat. Mencetak peta dalam C++ menggunakan iterator Mula-mula, mari lihat cara untuk mentakrifkan

Program C++ untuk menyemak sama ada aksara adalah abjad atau bukan abjad Program C++ untuk menyemak sama ada aksara adalah abjad atau bukan abjad Sep 14, 2023 pm 03:37 PM

Menggunakan rentetan atau aksara kadangkala sangat berguna apabila menyelesaikan beberapa masalah pengaturcaraan logik. Rentetan ialah koleksi aksara, iaitu jenis data 1-bait yang digunakan untuk memegang simbol dalam nilai ASCII. Simbol boleh berupa huruf Inggeris, nombor atau aksara khas. Dalam artikel ini, kita akan belajar cara menyemak sama ada aksara ialah huruf Inggeris atau huruf abjad menggunakan C++. Menyemak fungsi isalpha() Untuk menyemak sama ada nombor ialah huruf, kita boleh menggunakan fungsi isalpha() dalam fail pengepala ctype.h. Ini mengambil aksara sebagai input dan mengembalikan benar jika ia adalah abjad, palsu sebaliknya. Mari kita lihat pelaksanaan C++ berikut untuk memahami penggunaan fungsi ini. Terjemahan Cina bagi Contoh ialah: show

Program C++ untuk mendapatkan bahagian khayalan nombor kompleks yang diberikan Program C++ untuk mendapatkan bahagian khayalan nombor kompleks yang diberikan Sep 06, 2023 pm 06:05 PM

Sains moden sangat bergantung pada konsep nombor jamak, yang pertama kali ditubuhkan pada awal abad ke-17 oleh Girolamo Cardano, yang memperkenalkannya pada abad ke-16. Formula untuk nombor kompleks ialah a+ib, dengan a memegang kod html dan b ialah nombor nyata. Nombor kompleks dikatakan mempunyai dua bahagian: bahagian nyata <a> dan bahagian khayalan (<ib>). Nilai i atau iota ialah √-1. Kelas jamak dalam C++ ialah kelas yang digunakan untuk mewakili nombor kompleks. Kelas kompleks dalam C++ boleh mewakili dan mengawal beberapa operasi nombor kompleks. Mari kita lihat bagaimana untuk mewakili dan mengawal paparan nombor majmuk. imag() fungsi ahli Seperti yang dinyatakan di atas, nombor kompleks terdiri daripada bahagian nyata dan bahagian khayalan. Untuk memaparkan bahagian sebenar kami menggunakan real()

See all articles