高精度模板

全盘推翻,改吧!!!上次写的时候简直是个智障

class ultimateint {
private:
    vector<int> d;
    int base;
    void supress();
public:
    ultimateint(void);
    ultimateint(const int);
    ultimateint(const long long);
    ultimateint(const char *);
    ultimateint(const ultimateint&);

    friend istream& operator>>(istream&, ultimateint&);
    friend ostream& operator<<(ostream&, ultimateint&);

    ultimateint & operator = (const ultimateint &);

    bool operator == (const ultimateint &) const;
    bool operator > (const ultimateint &) const;
    bool operator < (const ultimateint &) const;
    bool operator >= (const ultimateint &) const;
    bool operator <= (const ultimateint &) const;

    friend bool operator == (const int&, const ultimateint &);
    friend bool operator > (const int&, const ultimateint &);
    friend bool operator < (const int&, const ultimateint &);
    friend bool operator >= (const int&, const ultimateint &);
    friend bool operator <= (const int&, const ultimateint &);

    friend bool operator == (const long long&, const ultimateint &);
    friend bool operator > (const long long&, const ultimateint &);
    friend bool operator < (const long long&, const ultimateint &);
    friend bool operator >= (const long long&, const ultimateint &);
    friend bool operator <= (const long long&, const ultimateint &);

    ultimateint operator + (const ultimateint &) const;
    ultimateint operator - (const ultimateint &) const;
    ultimateint operator * (const ultimateint &) const;
    ultimateint operator / (const ultimateint &) const;
    ultimateint operator % (const ultimateint &) const;

    ultimateint operator + (const int &) const;
    ultimateint operator - (const int &) const;
    ultimateint operator * (const int &) const;
    ultimateint operator / (const int &) const;
    ultimateint operator % (const int &) const;

    ultimateint operator + (const long long &) const;
    ultimateint operator - (const long long &) const;
    ultimateint operator * (const long long &) const;
    ultimateint operator / (const long long &) const;
    ultimateint operator % (const long long &) const;

    friend ultimateint operator + (const int&, const ultimateint &);
    friend ultimateint operator - (const int&, const ultimateint &);
    friend ultimateint operator * (const int&, const ultimateint &);
    friend ultimateint operator / (const int&, const ultimateint &);
    friend ultimateint operator % (const int&, const ultimateint &);

    friend ultimateint operator + (const long long&, const ultimateint &);
    friend ultimateint operator - (const long long&, const ultimateint &);
    friend ultimateint operator * (const long long&, const ultimateint &);
    friend ultimateint operator / (const long long&, const ultimateint &);
    friend ultimateint operator % (const long long&, const ultimateint &);

    void operator ++ (void);
    void operator -- (void);

    ~ultimateint() {}

};
原文地址:https://www.cnblogs.com/dramstadt/p/6104208.html