PDA

Visualizza la versione completa : [c++stl]ordinamento2 vector


giuseppe500
26-08-2010, 14:36
ciao,
devo realizzare un ordinamento di due vector dal piu piccolo al piu grande per tutti e due.
Il problema che i due array sono uniti da una funzione di corrispondenza che deve essere rispettata:

[code]
struct CmpSortEntities
{
double Fdouble(int n)
{
switch (n)
{
case 0:
return 2.4;
break;
case 1:
return 5.0;
break;
case 2:
return 0.2;
break;
case 3:
return 1.2;
break;
}
}

bool operator()(int n1, int n2)
{


if( Fdouble(n1) < Fdouble( n2))
return 1;
else
return 0;

}
};

void CTESTApp::OnAppAbout()
{
CAboutDlg aboutDlg;
aboutDlg.DoModal();


vector<int>v1;
vector<double>v2;

v1.push_back(0);
v1.push_back(1);
v1.push_back(2);
v1.push_back(3);

v2.push_back(2.4);
v2.push_back(5.0);
v2.push_back(0.2);
v2.push_back(1.2);


sort(v1.begin(), v1.end(), CmpSortEntities());

int i1 = v1[0];
int i2 = v1[1];
int i3 = v1[2];
int i4 = v1[3];
[code]

questo codice mi allinea i due array secondo la funzione di corrispondenza , ma non mi ordina il secondo vector (v2).
E' possibile ordinarli mantenendo la corrispondenza?
grazie.
un caso un po limite , ma mi farebbe comodo .

ciao

Loading