En gros voilà le problème d'après ce que j'ai compris, si tu veux pouvoir stocker tes cartes, soit tu utilises une base de données, et dans ce cas tu utilises SQL par exemple. Soit tu stockes tout dans un fichier. Mais un tableau en c++ est "volatile" la mémoire allouée pour un tableau en c disparaît dès que tu n'utilises plus ton programme, or j'ai l'impression que ce serait utile pour toi.
Vis à vis des performances, plein de facteurs jouent si tu utilises une base de donnée, quelle sgbd déjà, les requêtes que tu utilises, si elles marchent mais qu'elles font des produits cartésiens inutiles tu perds en performance.. Ensuite ce sera ton programme en lui même qui faudra regarder mais je te rassure, si tu as un problème de performance, il y a 9 chances sur 10 que ça vienne de tes requêtes 
donc en gros voilà ce que ça donne :
c++ et Qt => tu fais ton logiciel et tu peux appeler ta base de données
SQL => tu peux enregistrer toutes tes cartes
