9
votes

Définir un pointeur sur une liste en C ++

Je suis nouveau à la programmation C ++ et je suis problématique d'essayer de définir un pointeur à une liste. C'est le code que j'essaie d'utiliser: xxx pré>

l'erreur: p>

/home/julian/Proyectos Code::Blocks/pruebas/main.cpp|17|error: expected type-specifier before ‘list’|


3 commentaires

Avez-vous #include avec à l'aide de NAMESPACE STD; ? On dirait que cela ne sait pas ce que liste fait référence à.


Êtes-vous sûr d'avoir besoin d'un pointeur?


@ Julien à développer sur le point précédent, si vous avez un compilateur moderne (support C ++ 11), vous pouvez retourner une liste STD :: Liste comme si une valeur sans frais de copie en raison du fait que STD :: Liste et tous D'autres structures de données STD ont Déplacez les constructeurs . Avant C ++ 11, vous auriez pu être transmis dans la liste STD :: Liste par référence au lieu de renvoyer un pointeur à celui-ci.


3 Réponses :


3
votes

Liste réside dans std Espace de noms. Alors essayez de faire - xxx


2 commentaires

J'avais une faute de frappe dans une autre partie de mon code. Cela fonctionne maintenant, avec le code que j'ai posté auparavant. Savez-vous si je peux supprimer la question initiale? Merci quand même.


Vous pouvez. Mais je ne suis pas sûr que vous devez avoir une réputation suffisante pour supprimer votre propre question.



12
votes

Vous devez inclure la liste CODE> LIST CODE> HEADER et qualifier le nom Liste CODE>:

using std::list;
list<int> *p;


1 commentaires

@BenJ Il importe beaucoup trop de choses d'ouverture sans distinction de la porte pour les conflits - les espaces de noms très problématiques définis pour résoudre.



1
votes

Essayez ce qui suit:

std::list<int>* pl;


0 commentaires