C++ - Remplir une liste de structures
Bonjour,
J'ai ouvert une nouvelle discussion car, après beaucoup de recherches, je ne trouve aucune discussion/forum qui répondent à ma question.
- J'ai une structure de la forme suivante :
Code:
1 2 3 4 5
| typedef struct
{
int idPipe;
list<pair<int,int>> elemNodeList;
} PipeElemNode; |
- Je souhaite créer une liste de ce type :
Code:
list<PipeElemNode> pipeElemNodeList;
- Je possède un tuple de la forme : <idPipe, element, node>.
Code:
vector<tuple<int,int,int>> myVector = myPipingModel.GetTupleElemNode();
myVector est donc mon tuple.
- Mes tuples sont de la forme : <1, 1, 1> <1, 1, 2> <2, 1, 2> ...
Je peux donc avoir plusieurs paires d'élement-Node pour un pipe donné. Dans mon exemple, pour le pipe 1, j'ai la paire <1, 1> et <1,2> d'où mon choix de structure.
- Mon problème : Je n'arrive pas à remplir ma liste pipeElemNodeList. J'arrive à remplir une structure donnée mais pas pour une liste de structure :
Code:
1 2 3 4 5 6 7 8 9
| PipeElemNode test;
test.idPipe = get<0>(myVector[0]); // Remplissage du premier paramètre de ma structure
test.elemNodeList.push_back(make_pair(get<1>(myVector[0]), get<2>(myVector[0]))); // Remplissage de la liste de paire de ma structure
for (list<pair<int,int>>::iterator i = test.elemNodeList.begin(); i != test.elemNodeList.end(); i++ )
{
cout << (*i).first << " and " << (*i).second << endl; // affichage pour les tests
cout << endl << "press any key to continue...";
getchar();
} |
Je souhaiterai faire un truc du genre :
Code:
pipeElemNodeList.push_back(PipeElemNode(Les paramètres de mon struct))
mais je sais que cette syntaxe n'existe pas. Le tout bien sûr dans une boucle FOR mais la boucle je pense savoir où la mettre.
Je ne sais donc pas remplir une liste de structure avec une liste de paire à l'intérieur de cette structure. Je sais que c'est un peu tordu.
Je ne sais pas si j'ai été claire dans mes explications.
Je vous remercie d'avance pour votre aide