bianchis78
05-06-2007, 15:50
Salve,
ho implementato un metodo per effettuare il merge tra due vettori eleminando eventuali copie dello stesso valore.
Posto che i vettori sono ordinati in modo ascendente, avevo scritto una cosa del genere:
vector<int> MergeVector(vector<int> Vec1, vector<int> Vec2)
{
vector<int> Result;
vector<int>::iterator IterVec1=Vec1.begin();
vector<int>::iterator IterVec2=Vec2.begin();
while((IterVec1!=Vec1.end())&(IterVec2!=Vec2.end()))
{
if((*IterVec1)==(*IterVec2))
{
Result.push_back(*IterVec2);
IterVec2++;
IterVec1++;
}
else
{
if((*IterVec1)<(*IterVec2))
{
Result.push_back(*IterVec1);
IterVec1++;
}
else//((*IterVec1)<(*IterVec2))
{
Result.push_back(*IterVec2);
IterVec2++;
}
}
}
while(IterVec1<Vec1.end())
{
Result.push_back(*IterVec1);
IterVec1++;
}
while(IterVec2<Vec2.end())
{
Result.push_back(*IterVec2);
IterVec2++;
}
return Result;
}
Visto che questo metodo viene richiamato pių volte volevo provare a parrase come parametri i riferimenti ai vettori e non i vettori stessi, pertanto ho cambiato la firma del metodo cosė:
vector<int> MergeVector(vector<int> &Vec1, vector<int> &Vec2)
e lasciando invariata l'implementazione, ovviamente ho cambiato la firma anche nel file degli header.
Il Problema č che mi viene restituito un unresolved external symbol?
Qualcuno ha qualche suggerimento da darmi sulla possibile causa di questo errore?
ho implementato un metodo per effettuare il merge tra due vettori eleminando eventuali copie dello stesso valore.
Posto che i vettori sono ordinati in modo ascendente, avevo scritto una cosa del genere:
vector<int> MergeVector(vector<int> Vec1, vector<int> Vec2)
{
vector<int> Result;
vector<int>::iterator IterVec1=Vec1.begin();
vector<int>::iterator IterVec2=Vec2.begin();
while((IterVec1!=Vec1.end())&(IterVec2!=Vec2.end()))
{
if((*IterVec1)==(*IterVec2))
{
Result.push_back(*IterVec2);
IterVec2++;
IterVec1++;
}
else
{
if((*IterVec1)<(*IterVec2))
{
Result.push_back(*IterVec1);
IterVec1++;
}
else//((*IterVec1)<(*IterVec2))
{
Result.push_back(*IterVec2);
IterVec2++;
}
}
}
while(IterVec1<Vec1.end())
{
Result.push_back(*IterVec1);
IterVec1++;
}
while(IterVec2<Vec2.end())
{
Result.push_back(*IterVec2);
IterVec2++;
}
return Result;
}
Visto che questo metodo viene richiamato pių volte volevo provare a parrase come parametri i riferimenti ai vettori e non i vettori stessi, pertanto ho cambiato la firma del metodo cosė:
vector<int> MergeVector(vector<int> &Vec1, vector<int> &Vec2)
e lasciando invariata l'implementazione, ovviamente ho cambiato la firma anche nel file degli header.
Il Problema č che mi viene restituito un unresolved external symbol?
Qualcuno ha qualche suggerimento da darmi sulla possibile causa di questo errore?