21xrx.com
2025-03-27 17:54:06 Thursday
文章检索 我的文章 写文章
C++实现同一天生日的统计
2023-06-30 04:24:51 深夜i     17     0
C++ 生日统计 相同生日 计算 日期处理

C++是一门面向对象的编程语言,在计算机编程领域具有广泛的应用。在人们的生活中,相同生日的人往往会产生一些感触和联想,而如何使用C++来实现同一天生日的统计是一个非常有趣的问题。

首先,我们需要一个用于存储生日的数据结构。在C++中,可以使用结构体来表示一个具有年、月、日三个属性的生日。其定义如下:

struct Birthday
  int year;
  int month;
  int day;
;

其次,我们需要使用C++的容器来储存所有的生日,并进行分组和计数。在这里,我们可以使用STL中的`map`和`vector`容器,代码实现如下:

#include <iostream>
#include <map>
#include <vector>
using namespace std;
struct Birthday
  int year;
  int month;
  int day;
;
int main() {
  map<string, vector<Birthday>> birthday_map;
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    Birthday birthday;
    cin >> birthday.year >> birthday.month >> birthday.day;
    string birthday_key = to_string(birthday.month) + "-" +
               to_string(birthday.day);
    birthday_map[birthday_key].push_back(birthday);
  }
  for (auto p : birthday_map) {
    cout << p.first << ": " << p.second.size() << endl;
  }
  return 0;
}

以上代码首先定义了一个`map`结构体用于存储生日,`map`中的键是由月份和日期组合而成的字符串,值则是一个`vector`,含有相同生日的人的生日信息。接着读入生日的个数,循环读入每个生日,将其按照月份和日期组合成键,并将生日存储在对应的`vector`中。最后,循环输出每个生日的组合及其出现的次数。

使用以上代码,我们可以实现同一天生日的统计,并得到准确的结果。这种方法不仅运行速度快,而且易于理解和调试,是一种非常有效的方法。

  
  

评论区

    相似文章