[Giải đáp] Map trong c++ là gì? Cách sử dụng?

Map trong c++ là gì?

Map trong C++ là một cấu trúc dữ liệu cho phép lưu trữ các cặp khóa-giá trị (key-value). Mỗi khóa trong map là duy nhất và được sử dụng để truy cập giá trị của nó.

Cách sử dụng trong c++

Để khai báo một map trong C++, ta sử dụng cú pháp sau:

C++

map<K, V> map_name;

Vui lòng thận trọng khi sử dụng mã.

Trong đó:

  • K là kiểu dữ liệu của khóa
  • V là kiểu dữ liệu của giá trị
  • map_name là tên của map

Ví dụ:

C++

map<string, int> student_scores;

Vui lòng thận trọng khi sử dụng mã.

Map này có khóa là kiểu string và giá trị là kiểu int.

Để thêm một cặp khóa-giá trị vào map, ta sử dụng hàm insert():

C++

map_name.insert({key, value});

Vui lòng thận trọng khi sử dụng mã.

Ví dụ:

C++

student_scores.insert({"John Doe", 90});
student_scores.insert({"Jane Doe", 80});

Vui lòng thận trọng khi sử dụng mã.

Để truy cập giá trị của một khóa trong map, ta sử dụng toán tử []:

C++

value = map_name[key];

Vui lòng thận trọng khi sử dụng mã.

Ví dụ:

C++

int score = student_scores["John Doe"];

Vui lòng thận trọng khi sử dụng mã.

Để kiểm tra xem một khóa có tồn tại trong map hay không, ta sử dụng hàm find():

C++

if (map_name.find(key) != map_name.end()) {
  // Khóa tồn tại
} else {
  // Khóa không tồn tại
}

Vui lòng thận trọng khi sử dụng mã.

Xem thêm:  Chất nào sau đây chiếm khối lượng chủ yếu của tế bào?

Để xóa một cặp khóa-giá trị khỏi map, ta sử dụng hàm erase():

C++

map_name.erase(key);

Vui lòng thận trọng khi sử dụng mã.

Ví dụ:

C++

student_scores.erase("John Doe");

Vui lòng thận trọng khi sử dụng mã.

Một số phép toán cơ bản khác của map bao gồm:

  • empty(): Trả về true nếu map rỗng, false nếu map không rỗng
  • size(): Trả về số lượng phần tử trong map
  • begin(): Trả về iterator cho phần tử đầu tiên trong map
  • end(): Trả về iterator cho phần tử cuối cùng trong map

Dưới đây là một ví dụ về cách sử dụng map trong C++:

C++

#include <iostream>
#include <map>

int main() {
  map<string, int> student_scores;

  student_scores.insert({"John Doe", 90});
  student_scores.insert({"Jane Doe", 80});

  for (auto it = student_scores.begin(); it != student_scores.end(); it++) {
    std::cout << it->first << " " << it->second << std::endl;
  }

  return 0;
}

Vui lòng thận trọng khi sử dụng mã.

Kết quả:

John Doe 90
Jane Doe 80

Map là một cấu trúc dữ liệu rất hữu ích trong nhiều ứng dụng. Nó thường được sử dụng trong các bài toán cần ánh xạ giữa hai tập dữ liệu, chẳng hạn như:

  • Quản lý danh bạ
  • Quản lý kho dữ liệu
  • Tìm kiếm dữ liệu

Trả lời

Email của bạn sẽ không được hiển thị công khai.