Création d'une liste pour maintenir les objets en C++
Pardonnez-moi si cela semble un peu naïf, mais je suis plutôt novice en C++ et après des années en C et en Java, je suppose que ma tête est un peu confus.
Je suis en train de faire un tableau d'une taille inconnue pleine de nœuds que j'ai créé.
node *aNode = new node(14,32);
std::list<node> dataSet;
std::list<node>::iterator it;
it = dataSet.begin();
dataSet.insert(it, aNode)
Cependant, quand je compile ce (preuve de concept de test), il refuse, en jetant toutes sortes d'erreurs.
Je sais que c'est quelque chose de simple et je ne peux pas le comprendre.
Quelqu'un peut-il aider? Merci à l'avance!
edit:
Voici nœud:
class node{
float startPoint;
float endPoint;
float value;
public:
node(float, float);
void setValues(float, float);
};
node::node(float start, float end){
startPoint = start;
endPoint = end;
}
et des erreurs du compilateur:
error C4430: spécificateur de type manquant - int assumé. Remarque: C++ ne prend pas en
par défaut-interreur C2371: 'il' : redéfinition; différents types de base
error C2440: 'initialisation' : impossible de convertir de
'std::list<_Ty>::_Iterator<_Secure_validation>' int'error C2146: erreur de syntaxe : manquant ';' avant l'identificateur 'dataSet'
error C2143: erreur de syntaxe : manquant ';' avant '.'
error C4430: spécificateur de type manquant - int assumé. Remarque: C++ ne prend pas en
par défaut-interreur C2371: 'dataSet' : redéfinition; différents types de base
mise à jour:
J'ai changé le peu de code pour:
node aNode(14, 32);
std::list<node> dataSet;
dataSet.insert(dataSet.begin(), aNode);
Mais ces 3 erreurs subsistent:
error C2143: syntax error : missing ';' before '.'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2371: 'dataSet' : redefinition; different basic types
pourriez-vous nous montrer la classe de nœud?
n'êtes-vous pas essayer d'insérer un
node*
dans un node
liste?Tiago est droit. Déclarer une variable locale : le nœud de l'aNode(14, 32); ensuite, il devrait être heureux de le mettre dans la liste
Qui n'aide pas :/ j'ai ajouté les erreurs et la classe de nœud à la grande poste.
OriginalL'auteur DragonVet | 2013-08-01
Vous devez vous connecter pour publier un commentaire.
Votre liste devrait être soit de type
std::list<node*>
ou vous devez insérer un nœud d'objet (et non pas un pointeur vers une).ou
Vous pourriez post que comme une "mise à jour" section de votre question pour que chacun puisse le voir facilement.
OriginalL'auteur PoByBolek
Ressemble, vous devez déclarer votre liste de nœud de pointeurs, c'est à dire:
Également intéressant de noter que vous pouvez ajouter des éléments à une liste sans l'aide d'un itérateur:
OriginalL'auteur Peter Bloomfield
aNode est pointeur vers un objet de nœud sur le tas.
jeu de données doit être définie comme:
Même avec votre itérateur:
OriginalL'auteur AngelCastillo
Pour le code que vous avez posté votre manque un point-virgule après la dernière parenthèse
essayer
;
est dans le code source ou était un copier/coller de l'erreur par l'intermédiaire d'un commentaire plutôt qu'une réponse.Nouveau ici, merci pour l'info sur la convention ajp
C'était un c/p erreur. Désolé!
Pouvez éditer dans un
;
à votre question alors 😉OriginalL'auteur donsiuch
"spécificateur de type manquant - int supposé"
peut-être en raison du manque de
#include <list>
ou un manque de
#include "header for node"
OriginalL'auteur aamir