10085 record sono una pulce/un microbo, rispetto alla potenza di calcolo anche per il piu' ""scarso"" dei computer di 10 anni fa (ma anche di 20 ).
Sarebbe un'altro discorso se il numero dei record fosse 10 MILIONI o (meglio) 10 MILIARDI (piu' sui miliardi che sui milioni )
Quindi, il problema NON E' usare il C++, ma capire PERCHE' sta cosi' tanto tempo.
Cioe' l'ALGORITMO usato.
Considerazioni generali:
1) convertire le stringhe in numeri.
NON HA SENSO convertire la STESSA stringa nello STESSO numero MIGLIAIA e MIGLIAIA di volte.
2) NON HA SENSO scandire lo stesso file piu' di UNA volta.
Il tutto DEVE ESSERE FATTO in un'UNICO passaggio (nel qual caso il punto 1) diventa ininfluente).
3) l'altro ""trucco"" e' CONVERTIRE i file in un formato ""piu' gestibile"" (CSV o quant'altro) in cui si applica direttamente il punto 1).
Probabilmente quello che ti manca e' la conoscenza di ""struttre dati"" ALTERNATIVE alla SEQUENZA/LISTA.
Esiste il DIZIONARIO/MAPPA/ARRAY ASSOCIATIVO (sono tutti sinonimi) fatto apposta per questo tipo di lavori.
https://it.wikipedia.org/wiki/Array_associativ
Spannometricamente, il tempo per fare quello che hai descritto dovrebbe essere inferiore al secondo.
Diciamo, per stare sull'abbondante, qualche manciata di secondi (piu' granelli che sassi ).