IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

vector<vector<vector<int>>> Debug assertion failed.


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre habitu�
    Inscrit en
    Mai 2013
    Messages
    8
    D�tails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 8
    Par d�faut vector<vector<vector<int>>> Debug assertion failed.
    Bonjour,
    J'ai une grille 3dimension et j'aimerai supprimer tous les �l�ments de la 3 eme dimension sauf les deux premier ( c'est pour ca que j'ai utilis� ca : begin()+1 ) , la portion du code qui me pose probleme est la suivante :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    if(grille[5][4].size()>2){
    grille[5][4].erase(grille[5][4].begin()+1,grille[5][4].end());
    }
    le probl�me c'est que quand j�ex�cute ce code y'a l'erreur suivante : Debug assertion failed.
    Je ne vois pas ce que je pourrais faire pour que ce code fonctionne, puisque il parait qu'il est juste . pourriez vous m'aider s'il vous plait ?

    Merci d'avance.
    Cordialement.

  2. #2
    Membre Expert

    Avatar de germinolegrand
    Homme Profil pro
    D�veloppeur de jeux vid�o
    Inscrit en
    Octobre 2010
    Messages
    738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : D�veloppeur de jeux vid�o
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2010
    Messages : 738
    Par d�faut
    ton code supprime tout le vector sauf le premier �l�ment, il faut mettre begin + 2 si tu veux conserver les deux premiers...

  3. #3
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2012
    Messages
    788
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : F�vrier 2012
    Messages : 788

  4. #4
    Membre habitu�
    Inscrit en
    Mai 2013
    Messages
    8
    D�tails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 8
    Par d�faut
    Citation Envoy� par Ehonn Voir le message
    avec resize �a marche bien mais es que vraiment c'est la m�thode appropri� pour supprimer les cases d'un vecteur,(elle lib�re la m�moire des cases supprim�)

  5. #5
    Membre Expert Avatar de Ehonn
    Homme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2012
    Messages
    788
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : F�vrier 2012
    Messages : 788
    Par d�faut
    Citation Envoy� par piet1 Voir le message
    avec resize �a marche bien mais es que vraiment c'est la m�thode appropri� pour supprimer les cases d'un vecteur,(elle lib�re la m�moire des cases supprim�)
    Non, la capacit� du vecteur peut rester la m�me. En C++11 tu peux utiliser shrink_to_fit. Pre C++11, il faut cr�er un nouveau vecteur de la taille voulue et copier les �l�ments un � un.

    Voici un petit programme qui illustre shrink_to_fit :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    // g++ -Wall -Wextra -std=c++11 -pedantic -O3 resize.cpp -o resize && ./resize
     
    #include <iostream>
    #include <vector>
     
    int main()
    {
    	// Création du vecteur
    	std::vector<int> v(2222);
    	{
    		int i = 1000;
    		for (auto & e : v) { e = i++; }
    	}
     
    	// Affichage des caractéristique du vecteur avant et après resize, puis shrink_to_fit
    	for (unsigned int i = 0; i < 3; ++i)
    	{
    		if (i == 1)
    		{
    			std::cout << "resize" << std::endl;
    			v.resize(1111);
    		}
    		if (i == 2)
    		{
    			std::cout << "shrink_to_fit" << std::endl;
    			v.shrink_to_fit();
    		}
     
    		std::cout << "Valeurs du vecteur de taille " << v.size() << " entre " << v.front() << " et " << v.back() << ". " << "(Capacité = " << v.capacity() << ")" << std::endl;
    		std::cout << std::endl;
    	}
     
    	return 0;
    }
    Et son r�sultat :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    Valeurs du vecteur de taille 2222 entre 1000 et 3221. (Capacité = 2222)
     
    resize
    Valeurs du vecteur de taille 1111 entre 1000 et 2110. (Capacité = 2222)
     
    shrink_to_fit
    Valeurs du vecteur de taille 1111 entre 1000 et 2110. (Capacité = 1111)

  6. #6
    Membre Expert

    Avatar de germinolegrand
    Homme Profil pro
    D�veloppeur de jeux vid�o
    Inscrit en
    Octobre 2010
    Messages
    738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : D�veloppeur de jeux vid�o
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2010
    Messages : 738
    Par d�faut
    resize(2) met logiquement la taille du vector � 2. Que la m�moire soit lib�r�e ou pas regarde l'impl�mentation du vector (en g�n�ral non il me semble �tant donn� qu'il pr�sume que tu vas t'en resservir derri�re).

  7. #7
    Membre habitu�
    Inscrit en
    Mai 2013
    Messages
    8
    D�tails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 8
    Par d�faut
    merci

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 5
    Dernier message: 26/07/2007, 19h09
  2. [Vector] Utilisation d'un Vector
    Par LP-mpascolo dans le forum Collection et Stream
    R�ponses: 14
    Dernier message: 04/06/2007, 16h50
  3. R�ponses: 3
    Dernier message: 04/12/2006, 13h01
  4. [Debutant][Vector]Petit probl�me de vector
    Par GyZmoO dans le forum Collection et Stream
    R�ponses: 2
    Dernier message: 25/05/2006, 10h39
  5. [Vector] Ajouter un Vector dans un autre Vector
    Par VinceFromBcn dans le forum Collection et Stream
    R�ponses: 3
    Dernier message: 30/06/2004, 21h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo