vector和运算符重载
#include#include using namespace std; //大整数 * 整数 vector operator * (vector a, int b){ vector ans; long long carry = 0; // 表示进位,防止溢出用长整型 for(int i = 0; i < a.size(); ++i){ carry += a[i] * b; ans.push_back(carry % 10); carry /= 10; } //进位不止一位 while(carry){ ans.push_back(carry % 10); carry /= 10; } //去除先导零,并且至少保留一位0 for(int i = ans.size() - 1; ans[i] == 0 && i > 0; --i) ans.pop_back(); return ans; } int main(){ vector a = {5,8,7,9,4} , ans; int b = 8869; ans = a*b; for(int i = ans.size() - 1; i >= 0; --i) cout << ans[i]; return 0; }



