関数から整数とベクトルを返す方法。C++11 ではタプルを使用できます。しかし、C++98 標準を使用する必要があります。
問題はこのようなもので、
int myfunction(parameter 1,parameter 2)
{
vector<int> created_here;
//do something with created here
return int & created_here both
}
どうやってやるの。ところで、私は自分の関数を再帰的に使わなければならないので、このような方法を考えました。
int n;
vector<int> A;
int myfunction(int pos,int mask_cities,vector<int> &A)
{
if(mask = (1<<n)-1)
return 0;
vector<int> created_here;
int ans = 999999;
for(int i=0;i<n;++i){
int tmp = myfunction(pos+1,mask|1<<i,created_here);
if(tmp<ans){
A = created_here;
ans = tmp;
}
}
return ans;
}
これは機能しますか?または、より良い解決策があります。ところで、私の実際の問題は、巡回セールスマンの問題の解決策を見つけることです。それは私のニーズを明確にするはずです