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

Map trong C++ là gì?

Map trong C++ là một cấu trúc dữ liệu tuyến tính, mỗi phần tử trong đó là một cặp khóa (key) và giá trị (value). Kiểu dữ liệu của khóa và giá trị có thể khác nhau.

Các khóa trong map phải là duy nhất. Nếu một khóa đã tồn tại trong map, thì khi thêm một phần tử mới có khóa giống như khóa đó, giá trị của phần tử mới sẽ thay thế cho giá trị của phần tử có khóa đó.

Cách sử dụng Map trong C++?

Map được cài đặt dựa trên nguyên lý băm (hashing). Điều này có nghĩa là các phần tử trong map được sắp xếp theo một hàm băm (hash function). Hàm băm này sẽ ánh xạ mỗi khóa thành một vị trí trong map.

Để sử dụng map trong C++, chúng ta cần khai báo một biến có kiểu là map. Kiểu dữ liệu của khóa và giá trị cũng cần được khai báo. Ví dụ:

C++

#include <iostream>
#include <map>

using namespace std;

int main() {
  // Khai báo map có kiểu khóa là string và kiểu giá trị là int
  map<string, int> myMap;

  // Thêm phần tử vào map
  myMap["a"] = 1;
  myMap["b"] = 2;
  myMap["c"] = 3;

  // Lấy giá trị của phần tử có khóa là "a"
  int value = myMap["a"];
  cout << value << endl; // 1

  // Kiểm tra xem khóa "d" có tồn tại trong map hay không
  if (myMap.count("d") == 0) {
    cout << "Khóa 'd' không tồn tại" << endl;
  } else {
    cout << "Khóa 'd' tồn tại" << endl;
  }

  // Xóa phần tử có khóa là "b"
  myMap.erase("b");

  // In ra các phần tử trong map
  for (auto it = myMap.begin(); it != myMap.end(); it++) {
    cout << it->first << ": " << it->second << endl;
  }

  return 0;
}

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

Kết quả đầu ra của chương trình trên là:

1
Khóa 'd' không tồn tại
a: 1
c: 3

Dưới đây là một số phép toán cơ bản của map:

  • operator[]: Lấy giá trị của phần tử có khóa là key.
  • count: Kiểm tra xem khóa key có tồn tại trong map hay không.
  • begin()/end(): Trả về iterator cho phần tử đầu tiên/cuối cùng trong map.
  • erase(key): Xóa phần tử có khóa là key.
  • clear(): Xóa tất cả các phần tử trong map.

Map là một cấu trúc dữ liệu rất hữu ích trong nhiều ứng dụng. Ví dụ, map có thể được sử dụng để lưu trữ bảng tra cứu, danh sách các cặp khóa-giá trị, v.v.