Hi! I'm using this code to see if a number is an permutation of an vector. But it doesn't work as I wish it would. Also, how can I make the code shorter and more efficient?
[syntax="cpp"]bool isPermutation(int tal, vector <int> vektor ){
vector <int> temp = tillVektor(tal);
int * vektorn = new int[temp.size()];
std::copy(temp.begin(),temp.end(),vektorn);
int * vektor1 = new int[vektor.size()];
std::copy(vektor.begin(),vektor.end(),vektor1);
int * vektor2 = new int[vektor.size()];
std::copy(vektor.begin(),vektor.end(),vektor2);
while (next_permutation(vektor2, vektor2 + vektor.size())){
bool sant = true;
for (int i = 0; i < temp.size(); i++)
if (vektor2[i] != vektorn[i])
sant = false;
if (sant) return true;
}
while (prev_permutation(vektor1, vektor1 + vektor.size())){
bool sant = true;
for (int i = 0; i < temp.size(); i++)
if (vektor1[i] != vektorn[i])
sant = false;
if (sant) return true;
}
return false;
}[/syntax]
Thank you in advance.
