C++ Maps

Giới thiệu về C++ Maps

Trong ngôn ngữ lập trình C++, Map là một cấu trúc dữ liệu cho phép lưu trữ cặp khóa-giá trị (key-value pair). Mỗi khóa trong map là duy nhất và được ánh xạ tới một giá trị cụ thể. C++ cung cấp cấu trúc map trong thư viện chuẩn với lớp std::mapstd::unordered_map.

Các đặc điểm chính của C++ Maps

  • Định danh duy nhất: Mỗi khóa trong map là duy nhất, không có hai cặp khóa-giá trị nào có cùng một khóa.
  • Tự động sắp xếp: std::map tự động sắp xếp các cặp theo thứ tự của khóa (theo thứ tự tăng dần). Tuy nhiên, std::unordered_map không có thứ tự sắp xếp.
  • Truy cập nhanh: Cả hai loại map đều cho phép truy cập nhanh tới giá trị thông qua khóa.

Cú pháp sử dụng C++ Maps

Cú pháp để khai báo một std::map như sau:

#include <map>

std::map<KeyType, ValueType> mapName;

Cú pháp để khai báo một std::unordered_map:

#include <unordered_map>

std::unordered_map<KeyType, ValueType> mapName;

Ví dụ về C++ Maps

Ví dụ 1: Sử dụng std::map

#include <iostream>
#include <map>

int main() {
    std::map<std::string, int> ageMap;

    // Thêm dữ liệu vào map
    ageMap["Alice"] = 30;
    ageMap["Bob"] = 25;
    ageMap["Charlie"] = 35;

    // Truy cập và in ra dữ liệu
    for (const auto &pair : ageMap) {
        std::cout << pair.first << " is " << pair.second << " years old." << std::endl;
    }

    return 0;
}

Ví dụ 2: Sử dụng std::unordered_map

#include <iostream>
#include <unordered_map>

int main() {
    std::unordered_map<std::string, int> ageMap;

    // Thêm dữ liệu vào map
    ageMap["Alice"] = 30;
    ageMap["Bob"] = 25;
    ageMap["Charlie"] = 35;

    // Truy cập và in ra dữ liệu
    for (const auto &pair : ageMap) {
        std::cout << pair.first << " is " << pair.second << " years old." << std::endl;
    }

    return 0;
}

Kết luận

C++ Maps là một công cụ mạnh mẽ để quản lý và lưu trữ thông tin theo dạng cặp khóa-giá trị. Việc sử dụng chúng giúp cho việc truy cập và quản lý dữ liệu trở nên dễ dàng và tiện lợi hơn. Hy vọng rằng qua bài viết này, bạn đã có cái nhìn rõ hơn về cách sử dụng C++ Maps!