Membuat Map
Termasuk bagian Logika dan Alur dalam perjalanan C++ di Coddy. Pelajaran 24 dari 56.
Sekarang setelah kamu memahami apa itu map, mari pelajari cara membuatnya dan menambahkan pasangan key-value ke dalamnya. Saat mendeklarasikan std::map, kamu perlu menentukan tipe key dan tipe value menggunakan tanda kurung sudut.
Berikut sintaks dasar untuk membuat map:
std::map<KeyType, ValueType> mapName;Contohnya, untuk membuat map yang menyimpan nama siswa sebagai kunci dan nilai tes mereka sebagai nilai:
std::map<std::string, int> studentScores;Untuk menambahkan elemen ke map, kamu bisa menggunakan notasi tanda kurung siku dengan kuncinya, lalu menetapkan nilai:
studentScores["Alice"] = 95;
studentScores["Bob"] = 87;
studentScores["Carol"] = 92;Ini membuat tiga pasangan kunci-nilai di dalam map. Nama setiap siswa berfungsi sebagai kunci yang memungkinkan kamu mengambil nilainya dengan cepat.
Untuk melakukan iterasi pada semua elemen dalam map, kamu dapat menggunakan for loop berbasis range dengan auto. Setiap elemen dalam std::map adalah pasangan kunci-nilai, dan kamu dapat mengakses kunci menggunakan .first dan nilai menggunakan .second:
for (const auto& pair : studentScores) {
std::cout << pair.first << ": " << pair.second << std::endl;
}Di sini, auto secara otomatis menentukan tipe setiap elemen (pasangan kunci-nilai), pair.first memberikan kunci (nama siswa), dan pair.second memberikan nilai (skor). Perhatikan bahwa std::map secara otomatis menyimpan elemennya dalam urutan berdasarkan kunci, jadi iterasi pada map akan mencetak entri dalam urutan alfabetis.
Tantangan
MudahBuat program yang membangun sistem pelacakan nilai siswa menggunakan std::map. Programmu akan menyimpan nama siswa sebagai kunci dan nilai ujian mereka sebagai nilai.
Input berikut akan diberikan:
- Sebuah bilangan bulat
nyang menyatakan jumlah siswa - Lalu
npasang input:- Sebuah string yang menyatakan nama siswa
- Sebuah bilangan bulat yang menyatakan nilai siswa
Programmu harus:
- Membuat
std::map<std::string, int>bernamagrades - Membaca jumlah siswa
- Untuk setiap siswa, membaca nama dan nilainya, lalu menambahkannya ke map menggunakan notasi tanda kurung siku
- Setelah menambahkan semua siswa, mencetak informasi setiap siswa dalam format yang ditunjukkan di bawah
- Menghitung dan mencetak jumlah total siswa yang tersimpan di map
Gunakan format output persis berikut:
Student Grades:\n[student1]: [score1]\n[student2]: [score2]\n[student3]: [score3]\n...\nTotal students: [number of students]Siswa harus dicetak sesuai urutan kemunculannya saat melakukan iterasi pada map, yaitu dalam urutan alfabetis karena map otomatis mengurutkan berdasarkan kunci. Gunakan for loop berbasis rentang untuk melakukan iterasi pada map, mengakses setiap pasangan kunci dan nilai, lalu mencetak nama siswa diikuti nilainya.
Coba sendiri
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main() {
// Baca jumlah siswa
int n;
cin >> n;
// Buat map untuk menyimpan nilai
map<string, int> grades;
// TODO: Tulis kodemu di sini
// Baca nama dan skor setiap siswa, lalu tambahkan ke map
// Cetak hasilnya
cout << "Student Grades:" << endl;
// TODO: Gunakan range-based for loop untuk mencetak nilai setiap siswa
// Cetak jumlah seluruh siswa
cout << "Total students: " << grades.size() << endl;
return 0;
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Pointer dan Memori
Apa Itu Pointer?Operator Address-OfOperator DereferencePointer NullPointer dan ArrayMemori Dinamis dengan 'new'Membebaskan Memori dengan 'delete'Rangkuman: Latihan Pointer4Map (Pasangan Kunci-Nilai)
Mengenal std::mapMembuat MapMengakses dan Mengubah NilaiMemeriksa KunciMenghapus PasanganMelakukan Perulangan pada MapRangkuman: Frekuensi Kata2Vektor (array Dinamis)
Memperkenalkan std::vectorMembuat VektorMenambahkan ElemenMengakses ElemenUkuran VektorIterasi dengan for loopFor loop Berbasis RentangMenghapus ElemenRangkuman: Operasi VektorLatihan sendiri: Compiler C++ online