Utilisation de pop_front sur une liste de pointeurs dans une classe
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:
1 2 3 4 5
| class LeafNode : public Node // Inherits from Node class
{
private:
vector<Leaf *> m_children;
[...] / |
Code:
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(); |
Code:
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();
} |
Dans popLeaf(), la section en commentaires est une des solutions proposées sur le Web mais elle ne fonctionne pas pour moi.
Le message d'erreur est le suivant:
Code:
error: 'class std::vector(Leaf*)' has no member named 'pop_front'
Ce qui me laisse perplexe, c'est que m_children puisse utiliser push_back(...) mais pas 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?