I want to sort an array of structures based on one of their members. I did this using a sort I wrote, and it works, but I recently discovered that sort() from the standard is about 200 times faster. So I want to sort my stuff with std::sort but I don't know how to use std::sort with an array of structures, sorting based only on a certain member from the structure. I don't even know if it's possible to do this.
Any help would be appreciated, thanks
the code from my slow-slow-slow sort function, if it's of any use to give you the idea:
Code:
int minVal = 0;
int minPos;
NPC tmp;
for (int u = 0; u < MainMap.numNPCs-1; ++u) {
minPos = -1;
for (int v = u; v < MainMap.numNPCs; ++v) {
if (NPCs[v].aPixY < minVal || minPos == -1) {
minVal = NPCs[v].aPixY;
minPos = v;
}
}
tmp = NPCs[u];
NPCs[u] = NPCs[minPos];
NPCs[minPos] = tmp;
}