21xrx.com
2024-06-03 09:34:29 Monday
登录
文章检索 我的文章 写文章
C++实现同一天生日的统计
2023-06-30 04:24:51 深夜i     --     --
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`中。最后,循环输出每个生日的组合及其出现的次数。

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

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复