begin process at 2012 05 29 07:12:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

Initialisation vector


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Initialisation vector

mardi 19 décembre 2006 à 10:00:06 | Initialisation vector

AshOorTael

Bonjour,

J'ai une classe Case et je souhaiterais stocker ces Case dans un vecteur.

Donc dans le fichier Moteur.h :
class Moteur
{
 private:
    std::vector<Case> caseList;
[...]
};

Dans le fichier Moteur.cpp:
#include "Moteur.h"
Moteur::Moteur()
{
 caseList;
 [...] 
}

Mais lorsque je veux ajouter des elements au vecteur caseList avec push_back, le programme plante. On dirait que caseList n'est pas créé en memoire.

J'ai essayé de faire un reserve mais cela ne change rien et je n'ai plus d'idée.

Auriez vous des conseils?

Merci par avance. 


Ash Oor T'ael
mardi 19 décembre 2006 à 12:42:46 | Re : Initialisation vector

vecchio56

Administrateur CodeS-SourceS
Ton "instruction" caseList; dans le constructeur ne sert à rien. Par défaut, ton vecteur est automatiquement instancié, avec le constructeur par défaut, tu n'a rien a faire.
C'est comme si tu écrivais:
Moteur::Moteur(): caseList(std::vector<Case>())
{
}

Le problème peut venir du constructeur de Case, ou bien du constructeur par copie

_____________________________________
Un éditeur de ressources gratuit pour Windows

mardi 19 décembre 2006 à 14:42:25 | Re : Initialisation vector

AshOorTael

Merci,

Je pensais bien que cela ne servait à rien, mais c'est toujours bon d'en avoir le confirmation

Sinon voila le constructeur par défault:

Case::Case()
{
    pos.x = 0;
    pos.y = 0;
    pos.w = 0;
    pos.h = 0;
    fade = 0;
    alpha = 255;
    joueur = 0;               
}

pos est un SDL_Rect et le reste des int.

Le constructeur par copie est obligatoire? Si oui, a quoi devrait il ressemblé.

Ash Oor T'ael
mardi 19 décembre 2006 à 15:16:16 | Re : Initialisation vector

vecchio56

Administrateur CodeS-SourceS
Comme tu n'a que des valeurs entières, je ne pense pas que tu ais besoin de ce constructeur par recopie.
Peux-tu connaitre exactement l'endroit qui fait planter ton programme?

_____________________________________
Un éditeur de ressources gratuit pour Windows

mardi 19 décembre 2006 à 15:51:58 | Re : Initialisation vector

AshOorTael

oui, je te met le debut de la fonction:

 std::vector<std::string> wFileList = file->getFileList();//renvoi un vecteur contenant le chemin de plusieurs fichiers
 SDL_Rect r;
 std::vector<int> caseRemplie;
 int caseIdx = 0;
 int interCell = 10;
 int x = interCell;
 int y = interCell;
 int cols = getMaxCols(wFileList.size()*2); // permet d'obtenir le nombre le colonne en fonction du nombre de fichier OK.
 int lines =  (wFileList.size()*2)/cols; //nombre de ligne
 int width = (int)((WIDTH-(cols*interCell))/cols); //taille des cases
 int height = (int)((HEIGHT-(lines*interCell))/lines); // taille des cases
 
 caseRemplie = fillBoard(wFileList.size()*2); //rempli le vecteur avec des int aleatoires distincts
    std::cout << caseList.capacity()<<"\n"; //affiche 0
 caseList.reserve(wFileList.size()*2);
 std::cout << caseList.capacity()<<"\n"; affiche 20 car 10 fichiers *2
caseList.at(0)->setID("1"); plante  ici.

J'ai enlevé le try catch.
Je souhaiterais repartir aléatoirement les noms de fichiers dans les cases du vecteur,mais j'avoue avoir du mal.
Est ce qu'avec un std::fill cela passerais mieux, je vais essayé.
Merci pour ton aide.

Ash Oor T'ael

mercredi 20 décembre 2006 à 11:41:11 | Re : Initialisation vector

AshOorTael

non, cela ne mache pas donc j'ai fait une boucle

for (int i=0;i<wFileList.size()*2;i++)
    {
        caseList.push_back(new Case());
    }

qui marche.

Sinon  je ne sais toujours pas d'ou vient mon problème.
Ash Oor T'ael


Cette discussion est classée dans : case, vector, moteur, initialisation, caselist


Répondre à ce message

Sujets en rapport avec ce message

initialisation d'un vecteur [ par dud1410 ] salut tout le monde, est ce que quelqu'un peut me dire comment initialiser un vector de taille l contenant L vector of int??merci d'avance <img src= Un peut d'aide pour mon projet [ par asiana ] Bonjour a toute et a tous Voila j'ai un petit problème avec un programme qui permet de géré une vente aux encheres des poissons avec "le switch  case" Struct avec fonctions [ par Tybrenn ] Je suis débutant en c++. J'essaie de faire un prog. qui permet de maintenir l'inventaire d'un cellier. J'utilise une struct contenant l'info de chaque C : Problème d'indirection de fichier [ par MasterShadows ] Bonsoir à tous,alors dans le cadre de mon projet de C (on va appeler ça une série TV thèque), qui doit être fait en mode console, l'utilisateur doit p mon exe plante sur la lecteur d'un case d'un tableau [ par vincent_time ] salut,j'ai un tableau de char nommé carte de 4x4 cases, ma fonction teste toutes les cases adjacentes à carte[y][x].les 4 cases adjacents sont donc ca VOID [ par langenoir7712 ] AIDER MOI SVP JE VEUX LE MEME PROGRAMME MAIS MTN AVEC UN VOID POUR NE PAS AVOIR TOUT CE BLABLA REPONDEZ MOI SVPMERCI D'AVANCE#include #include #includ richedit bloquer la modification d'un document [ par babyboo1107 ] Bonjour j'aimerais savoir comment faire pour lorsque je fais fermer le document il me met une fenetre gisée(ca j'ai trouver) mais ou il ne soit pas po Classe Template - Probleme d'edition de lien [ par ano2345 ] Bonjour a tous,   <p class="MsoNormal" style="MARG Touches clavier [ par F0ra ] Salut,Mon problème c'est que ça ne fonctionne pas quand j'appuie sur la touche de droite et bas en même temps par exemple.Que faire ?case WM_KEYDOWN:s rachraichissement fenetre winapi en c [ par dyroj ] bonjour a tous,sa faire quelque semain que j'ai un gros probleme avec le rechaichissement winapi, se probleme menpaiche d'avancer dans mais projet.se


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales