Menu
CoddyTech

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.

challenge icon

Tantangan

Mudah

Buat 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 n yang menyatakan jumlah siswa
  • Lalu n pasang input:
    • Sebuah string yang menyatakan nama siswa
    • Sebuah bilangan bulat yang menyatakan nilai siswa

Programmu harus:

  1. Membuat std::map<std::string, int> bernama grades
  2. Membaca jumlah siswa
  3. Untuk setiap siswa, membaca nama dan nilainya, lalu menambahkannya ke map menggunakan notasi tanda kurung siku
  4. Setelah menambahkan semua siswa, mencetak informasi setiap siswa dalam format yang ditunjukkan di bawah
  5. 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;
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler C++ online