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

Chương trình C ++ để triển khai bản đồ trong STL

Bản đồ là một vùng chứa liên kết lưu trữ các phần tử theo kiểu được ánh xạ. Mỗi phần tử có một giá trị khóa và một giá trị được ánh xạ. Không có hai giá trị được ánh xạ nào có thể có cùng giá trị khóa.

Các hàm được sử dụng ở đây:

  • m ::find () - Trả về một trình lặp cho phần tử có giá trị khóa ‘b’ trong bản đồ nếu được tìm thấy, nếu tìm thấy thì trả về trình lặp để kết thúc.

  • m ::delete () - Xóa giá trị khóa khỏi bản đồ.

  • m ::equal_range () - Trả về một trình lặp của các cặp. Cặp này đề cập đến các giới hạn của một dải ô bao gồm tất cả các phần tử trong vùng chứa có khóa tương đương với khóa.

  • m insert () - Để chèn các phần tử vào vùng chứa bản đồ.

  • m size () - Trả về số phần tử trong vùng chứa bản đồ.

  • m count () - Trả về số lượng so khớp với phần tử có giá trị khóa ‘a’ hoặc ‘f’ trong bản đồ.

Mã mẫu

#include<iostream>
#include <map>
#include <string>
using namespace std;
int main () {
   map<char, int> m;
   map<char, int>::iterator it;
   m.insert (pair<char, int>('a', 10));
   m.insert (pair<char, int>('b', 20));
   m.insert (pair<char, int>('c', 30));
   m.insert (pair<char, int>('d', 40));
   cout<<"Size of the map: "<< m.size() <<endl;
   cout << "map contains:\n";
   for (it = m.begin(); it != m.end(); ++it)
      cout << (*it).first << " => " << (*it).second << '\n';
   for (char c = 'a'; c <= 'd'; c++) {
      cout << "There are " << m.count(c) << " element(s) with key " << c << ":";
      map<char, int>::iterator it;
      for (it = m.equal_range(c).first; it != m.equal_range(c).second; ++it)
         cout << ' ' << (*it).second;
         cout << endl;
   }
   if (m.count('a'))
      cout << "The key a is present\n";
   else
      cout << "The key a is not present\n";
   if (m.count('f'))
      cout << "The key f is present\n";
   else
      cout << "The key f is not present\n";
   it = m.find('b');
   m.erase (it);
   cout<<"Size of the map: "<<m.size()<<endl;
   cout << "map contains:\n";
   for (it = m.begin(); it != m.end(); ++it)
   cout << (*it).first << " => " << (*it).second << '\n';
   return 0;
}

Đầu ra

Size of the map: 4
map contains:
a => 10
b => 20
c => 30
d => 40
There are 1 element(s) with key a: 10
There are 1 element(s) with key b: 20
There are 1 element(s) with key c: 30
There are 1 element(s) with key d: 40
The key a is present
The key f is not present
Size of the map: 3
map contains:
a => 10
c => 30
d => 40