Computer >> Máy Tính >  >> Lập trình >> C ++

Duyệt qua bản đồ (hoặc bản đồ không có thứ tự) trong C ++ STL


Ở đây chúng ta sẽ thấy vùng chứa bản đồ và việc sử dụng nó trong C ++. Các bản đồ được định nghĩa là các vùng chứa kết hợp lưu trữ các phần tử theo kiểu ánh xạ băm. Mỗi phần tử được liên kết với một khóa và giá trị. Không có hai giá trị được ánh xạ nào có thể có các khóa giống nhau. Đây là một số phương thức cơ bản có bên trong vùng chứa bản đồ trong C ++.

begin ():Điều này trả về một trình lặp đến phần tử đầu tiên trong bản đồ.

end () - Điều này trả về một trình lặp đến phần tử lý thuyết theo sau phần tử cuối cùng trong bản đồ.

kích thước () - Điều này trả về số phần tử trong bản đồ.

max_size () - Điều này trả về số lượng phần tử tối đa mà bản đồ có thể chứa.

trống () - Điều này trả về việc bản đồ có trống hay không.

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

#include <bits/stdc++.h>
using namespace std;
int main() {
   int A[] = { 2, 2, 3, 2, 2, 4, 5, 4 };
   int num = sizeof(A) / sizeof(A[0]);
   map<int, int> my_map;
   for (int p = 0; p < num; p++)
      my_map[A[p]]++;
   cout <<"Item Frequency"<< endl;
   for (auto p : my_map)
      cout << p.first <<" : "<< p.second << endl;
}

Đầu ra

Item Frequency
2 : 4
3 : 1
4 : 2
5 : 1

Bản đồ không có thứ tự là một loại vùng chứa bản đồ khác có trong C ++ STL. Đây là vùng chứa được liên kết thu thập hoặc lưu trữ các phần tử được hình thành bằng cách kết hợp cặp giá trị khóa. Khóa được sử dụng để xác định duy nhất giá trị. Trong trường hợp này, cả khóa và giá trị có thể thuộc bất kỳ loại nào được xác định trước hoặc do người dùng xác định.

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

#include <bits/stdc++.h>
using namespace std;
int main() {
   int A[] = { 2, 2, 3, 2, 2, 4, 5, 4 };
   int num = sizeof(A) / sizeof(A[0]);
   unordered_map<int, int> my_map;
   for (int p = 0; p < num; p++)
      my_map[A[p]]++;
   cout <<Item Frequency"<< endl;
   for (auto p : my_map)
      cout << p.first <<" : "<< p.second << endl;
}

Đầu ra

Item Frequency
5 : 1
4 : 2
2 : 4
3 : 1