高精度模板

#include <bits/stdc++.h>
using namespace std;
//大整型 
class BigInt:public vector<int> {
public :
	BigInt() {push_back(0);}
	BigInt(int x){push_back(x);proccess_digit();}
	BigInt &operator*=(int x){
		for(int i=0;i<size();i++) at(i)*=x;
		proccess_digit();
		return *this;
	}
	BigInt operator*(int x){BigInt ret(*this);ret*=x;return ret;}
	BigInt operator+=(int x){at(0)+=x;proccess_digit();return *this;}
	BigInt operator+(int x){BigInt ret(*this);ret+=x;return ret;}
	BigInt operator/(int x){
		BigInt ret(*this);
		int y=0;
		for(int i=size()-1;i>=0;i--){y=y*10+at(i);ret[i]=y/x;y%=x;}
		ret.proccess_digit();
		return ret;
	}
	BigInt operator/=(int x){
		BigInt ret(*this);
		int y=0;
		for(int i=size()-1;i>=0;i--){y=y*10+at(i);ret[i]=y/x;y%=x;}
		ret.proccess_digit();
		return ret;
	}
	bool operator>(const BigInt &a) const{
		if(size()!=a.size()) return size()>a.size();
		for(int i=size()-1;i>=0;i--) if(at(i)!=a[i]) return at(i)>a[i];
		return false;
	}
	bool operator<(const BigInt &a) const{
		if(size()!=a.size()) return size()<a.size();
		for(int i=size()-1;i>=0;i--) if(at(i)!=a[i]) return at(i)<a[i];
		return true;
	}
private :
	void proccess_digit(){
		for(int i=0;i<size();i++){
			if(at(i)<10) continue;
			if(i+1==size()) push_back(0);
			at(i+1)+=at(i)/10;
			at(i)%=10;
		}
		return;
	}
};
ostream &operator<<(ostream &out,const BigInt &a){
	for(int i=a.size()-1;i>=0;i--) out<<a[i];
	return out;
}
int main(){

	return 0;
}