Salutations code-gourous! J'écris un algorithme qui relie, par exemple node_A de Region_A avec node_D de Region_D. (node_A et node_D ne sont que des entiers). Il pourrait y avoir 100k + de tels nœuds. Supposons que le segment de droite entre A et D passe par plusieurs autres régions, B, C, Z. Il y aura un maximum de 20 régions entre ces deux nœuds. Chaque région a ses propres propriétés qui peuvent varier en fonction de la connexion A-D. Je veux y accéder à un moment ultérieur.structure de données C++ efficace à considérer dans ce cas
Je cherche une bonne structure de données (peut-être un conteneur STL) qui peut contenir cette information pour une connexion particulière.
Par exemple, pour la connexion A - DI veulent stocker:
node_A,
node_D,
crosssectional area (computed elsewhere) ,
regionB,
regionB_thickness,
regionB other properties,
regionC, ....
Les données peuvent être double, int, string et pourrait aussi être un tableau/vecteur etc.
Première J'ai envisagé de créer des structures ou des classes pour regionB, regionC etc. Mais, pour chaque connexion A-D, certaines propriétés comme l'épaisseur de la région traversée par cette connexion sont différentes. Il y aura seulement 3 ou 4 choses différentes que je dois stocker concernant une région. Quelle structure de données devrais-je considérer ici (n'importe quel conteneur STL comme un vecteur?) Pourriez-vous en suggérer une? (apprécierait un extrait de code)
Pour accéder à une connexion entre les noeuds A-D, je veux utiliser int node_A (un index). Cela signifie probablement que j'ai besoin d'utiliser un hashmap ou une structure de données similaire. Quelqu'un peut-il s'il vous plaît suggérer une bonne structure de données en C++ qui peut efficacement contenir ce genre de données pour la connexion A -D décrite ci-dessus? (apprécierait un extrait de code)
merci!
MISE À JOUR pour certaines raisons, je ne peux pas utiliser pkgs comme coup de pouce. Voulez-vous savoir si je peux utiliser des bibliothèques de STL
Il me ressemble graphique. – Drakosha
remercie Drakosha pour une réponse super rapide. .. Je passe maintenant en revue la documentation pour 'graphique' – memC
http://en.wikipedia.org/wiki/Graph_%28data_structure%29 – Drakosha