想要在test_bignit.cpp里面使用bigint.cpp的函数
#include <vector> #include <string> using namespace std; typedef string BigInt; typedef vector<double> Poly; BigInt multiply_int(const BigInt &a,const BigInt &b){ Poly d(a.size()+b.size()-1,0); BigInt res; double temp=0; for(int i=0;i<a.size();i++){ for(int j=0;j<b.size();j++){ d[i+j] += (a[i]-48) * (b[j]-48); } } for(int i=0;i<d.size();i++) res.append(to_string((int)d[i])); return res; }
#include <iostream> #include <vector> using namespace std; #include "bigint.cpp" int main() { BigInt A,B; cin >> A >> B; cout << multiply_int(A,B) << endl; }
一直报错:ld: 1 duplicate symbol for architecture x86_64
网上一直说import了重复的东西或者有多个main,好吧,查了很久,都没问题。。。
后来我把test_bigint.cpp中 #include "bigint.cpp" 删去,并在使用前加上函数定义
#include <iostream> //#include "bigint.cpp" using namespace std; typedef string BigInt; BigInt multiply_int(const BigInt &a,const BigInt &b); int main() { BigInt A,B; cin >> A >> B; cout << multiply_int(A,B) << endl; }
解决问题。。。。。。。