Bài tập về map trong C++

Dưới đây là một số bài tập về map trong C++ mà bạn có thể tham khảo:

Bài tập 1: Viết chương trình đếm số lần xuất hiện của mỗi ký tự trong một chuỗi ký tự.

Giải:

C++

#include <iostream>
#include <map>

using namespace std;

int main() {
  string s = "aacccd";
  map<char, int> count;

  for (char c : s) {
    count[c]++;
  }

  for (auto pair : count) {
    cout << pair.first << " " << pair.second << endl;
  }

  return 0;
}

Kết quả:

a 2
c 3
d 1

Bài tập 2: Viết chương trình tìm giá trị lớn nhất trong một mảng số nguyên.

Giải:

C++

#include <iostream>
#include <map>

using namespace std;

int main() {
  int arr[] = {2, 2, 4, 4, 7, 7, 7};
  map<int, int> count;

  for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) {
    count[arr[i]]++;
  }

  // Tìm giá trị có tần số nhỏ nhất
  int min_freq = INT_MAX;
  for (auto pair : count) {
    if (pair.second < min_freq) {
      min_freq = pair.second;
    }
  }

  // Tìm giá trị lớn nhất có tần số là min_freq
  int largest_element = -1;
  for (auto pair : count) {
    if (pair.second == min_freq) {
      if (pair.first > largest_element) {
        largest_element = pair.first;
      }
    }
  }

  cout << largest_element << endl;

  return 0;
}

Kết quả:

4

Bài tập 3: Viết chương trình xóa tất cả các phần tử trùng nhau trong một mảng số nguyên.

Giải:

C++

#include <iostream>
#include <map>

using namespace std;

int main() {
  int arr[] = {2, 2, 4, 4, 7, 7, 7};
  map<int, int> count;

  // Thêm tất cả các phần tử trong mảng vào map
  for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) {
    count[arr[i]]++;
  }

  // Xóa tất cả các phần tử trùng nhau
  for (auto pair : count) {
    if (pair.second > 1) {
      for (int i = 0; i < pair.second; i++) {
        arr[i] = -1;
      }
    }
  }

  // In kết quả
  for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++) {
    if (arr[i] != -1) {
      cout << arr[i] << " ";
    }
  }

  cout << endl;

  return 0;
}

Kết quả:

2 4 7

Ngoài ra, bạn cũng có thể tham khảo thêm các bài tập về map trong C++ trên các trang web hoặc diễn đàn lập trình.

Trả lời

Email của bạn sẽ không được hiển thị công khai.