Làm thế nào để tạo một danh sách với chỉ mục kiểu chuỗi trên C++

Trong một bài viết trước, tôi có giới thiệu với các bạn tạo danh sách/mảng với cách đánh chỉ mục bằng chuỗi kí tự trong lập trình Python.  Bài viết này sẽ giới thiệu mục đích tương tự nhưng lập trình trong ngôn ngữ C++. Kĩ thuật chính là dùng lớp map.

Giới thiệu sơ về lớp map

Map là một trong những kiểu dữ liệu bình chứa kết hợp (asssociative container): nghĩa là mỗi phần tử trong bình chứa là một sự kết hợp giữa giá trị khóa (key value) và giá trị tương ứng với khóa đó (mapped value). Map là một lớp trong bộ nhóm các kiểu dữ liệu tập hợp (containers) được cài đặt trong bộ thư viện mẫu chuẩn STL của ngôn ngữ C++.
Các giá trị khóa là dữ liệu thuộc kiểu tùy ý. Và do đó, chúng ta có thể dùng các chuỗi kí tự làm key value cho một map.
Associative Array
Associative Array

Cài đặt associative array sử dụng map

#include




using namespace std;
std::map <string, char> ranks;
ranks["Tung"] = 'A';
ranks["Cuc"] = 'A';
ranks["Truc"] = 'C';
ranks["Mai"] = 'B';
// Tra ve "Tung"
std::cout<<ranks.begin()->first<<endl;
// Tra về'A'
std::cout<<ranks.begin()->second<<endl;

 

 

Một số cách khác

HashTable (cũng có tên gọi khác là HashMap) là một kiểu dữ liệu thùng chứa kết hợp tổng quát (Associative Array) dùng để lưu trữ các phần tử có cấu trúc: một khóa duy nhất (key) kết hợp với một giá trị (value). STL không cài đặt HashMap. Vì vậy, đối với người lập trình có thể tự xây dựng một lớp HashMap phù hợp với nhu cầu công việc của mình.
Trong JavaScript, để tạo một associative array thật đơn giản. Xin tham khảo thêm một bài viết bên ngoài What is associative array in JavaScript.

Tham khảo

Nguyen Vu Ngoc Tung

I love making new professional acquaintances. Don't hesitate to contact me via nguyenvungoctung@gmail.com if you want to talk about information technology, education, and research on complex networks analysis (i.e., metabolic networks analysis), data analysis, and applications of graph theory. Specialties: researching and proposing innovative business approaches to organizations, evaluating and consulting about usability engineering, training and employee development, web technologies, software architecture.

https://www.itersdesktop.com/author/nvntung/

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.