Na wstępie chał bym przepościć forum ze zadaje tyle pytań, ale jest to niestety jeno z moich głównych źródeł wiedzy.
Pytanie właściwe czy jest może jakaś biblioteczna metoda w klasie vector która zwraca medianę
pseudo kod poniżej, coś w tym stylu tylko w dwóch liniach i bez konieczności kopiowania vectorów
struct punkt{
int x;
int y;
}
vector <vector <punkt>>P
sort(p.begin(),p.end(),posortuj_po_x());
sort(p.begin(),p.end(),posotuj_po_y());
punkt mediana (vector<punkt>&vx,vector <punkt> &vy)
//vector<punkt>&vx,vector <punkt> &vy posortowane wktory po x i y
{
size_t sz = vx.size();
size_t md=sz/2;
if (sz%2) md+=1;
std:: vector <punkt> :: iterator mdx=vx.begin();
std:: vector <punkt> :: iterator mdy=vy.begin();
std::advance(mdx,md);
std::advance(mdy,md);
return {mdx->x,mdy->y};
}