| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 
 | class EquinoxList
{
    public:
        void registerDay(Date const & d, int year)
        {
            days_.insert(std::make_pair(year, d));
        }
        Date const & findByYear(int year) const
        {
            std::map<int, Date>::const_iterator it=days_.find(year);
            if(it == days_.end())
                return Date(0); // une date réputée invalide :-D
            return it.second;
        }
        bool exists(int year) const
        { 
            return days_.find(year)!= days_.end();
        }
        // exemple très mal fait d'une fonction qui pourrait 
        // te permettre de récupérer la liste des équinoxes
        // dans un fichier :D
        static void readList(std::string const & filename)
        {
            days_.clear(); // pour le cas où on aurait déjà lu un fichier 
                             // et que les dates ne correspondraient pas:D
            std::ifsream ifs(filename.c_str());
            Date date;
            int year;
            while(ifs>>date>>year)
                registerDay(date, year);
        }
    private:
        static std::map<int, Date > days_;
}; |