webForumDet fria alternativet

Generell binärsökning för olika datatyper i objekt?

C/C++

2 svar · 403 visningar · startad av Mattias

Medlem sedan mars 2000205 inlägg
Frågan#1

Finns det något sätt att göra en binärsökningsfunktion som hanterar olika get-metoder i ett objekt? Jag vill alltså kunna leta upp indexposition i ett film-objekt (som ligger i en vektor) där jag vill kunna komma åt och jämföra attribut via get_year (som är en int), get_title (string) och get_rating (double) beroende på vilken typ som ska jämföras. Det svåra är alltså hur man gör binärsökingsfunktionen generell så att man slipper göra en binärsökningsfunktion för varje typ som ska jämföras.

Tacksam för svar!

Medlem sedan juni 200010 432 inlägg
#2

Du behöver ju inte göra en helt ny binärsökningsfunktion för varje fall, men däremot göra olika jämförelsefunktioner vilket inte blir särskilt mycket extra i kodväg. Har inget på rak arm för C++, men i C finns den tjusiga bsearch i stdlib.h som bygger på void och funktionspekare. Till C++ & STL borde detta vara till hjälp.

Medlem sedan mars 2000205 inlägg
#3

Ok, ja, jag misstänkte att man var tvungen att använda nåt med <template>. Ska spana på det imorgon. Tack för tipset,PeW! Är det nån som har nån annan "smart" lösning på generell binärsöking av vector-objekt så vore jag tacksam om ni lämnar märke i tråden.

259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)