Bonjour,
J'essaie d'utiliser pop_front sur une liste de pointeur qui fait partie d'une classe. Évidemment, ca ne fonctionne pas car pop_front n'est pas une méthode membre.
Voici mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class LeafNode : public Node // Inherits from Node class { private: vector<Leaf *> m_children; [...] /
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 void LeafNode::addLeaf( LeafNode * original, int kVar[], int kLeaf[], int *kLeafCount, int *leafCount, int *nrxL) { setNchilds(0); setNobs(0); while ( ((kLeaf[*kLeafCount]) <= (*leafCount) + original->getNchilds()) & (*kLeafCount < *nrxL)) { m_children.push_back ( new Leaf(original->m_children[kLeaf[(*kLeafCount) - (*leafCount) ]- 1], kVar )); /*Copy leaf*/ [...] } //Remove the empty first leaf popLeaf();Dans popLeaf(), la section en commentaires est une des solutions proposées sur le Web mais elle ne fonctionne pas pour moi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 void LeafNode::popLeaf() { //vector <Leaf *> LeafVector; // getLeaves(LeafVector); //*LeafVector.pop_front(); // m_children = LeafVector; m_children.pop_front(); }
Le message d'erreur est le suivant:
Ce qui me laisse perplexe, c'est que m_children puisse utiliser push_back(...) mais pas pop_front().
Code : Sélectionner tout - Visualiser dans une fenêtre à part error: 'class std::vector(Leaf*)' has no member named 'pop_front'
Je dois absolument trouver un moyen de retirer le premier élément de mon vecteur car il s'agit d'une feuille vide.
Quelqu'un a une idée?
Partager