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 :

Equivalent de List (Java) en C++ ?


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    120
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 120
    Par d�faut Equivalent de List (Java) en C++ ?
    Bonjour � tous,

    Voil� j'aurais voulu savoir si en C++ il est possible avec des list (ou vector, queue, ...) de faire ce que les m�thodes suivantes font en Java avec le type List :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    E get(int index) // retourne l'élément à la position index 
    et
    E remove(int index) // enlève l'élément à la position index, rechaîne la liste et retourne l'élément supprimé
    En C++, j'ai vu qu'il faut passer par des iterators mais je n'ai pas r�ussi � acc�der directement � un �l�ment de la liste (comme le fait la m�thode get) sans la parcourir et de m�me pour supprimer un �l�ment.

    Merci d'avance pour vos r�ponses

  2. #2
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2005
    Messages
    183
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 183
    Par d�faut
    Avec les vector tu y acc�des comme avec un tableau :

    monVector[i] = ...;

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    120
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 120
    Par d�faut
    Citation Envoy� par loacast
    Avec les vector tu y acc�des comme avec un tableau :

    monVector[i] = ...;
    Oui, j'avais vu �a mais j'ai toujours le probl�me pour retirer un �l�ment � une position donn�e et recha�ner le vector.

  4. #4
    Membre confirm�
    Profil pro
    �tudiant
    Inscrit en
    Novembre 2004
    Messages
    84
    D�tails du profil
    Informations personnelles :
    �ge : 38
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 84
    Par d�faut
    Ca se fait tout seul via la m�thode erase(iterator)...

    Exemple :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    for(vector<le_type_des_objets_de_ton_vector>::iterator it = ton_vector.begin() ; it != ton_vector.end() ; ++it) {
         if(ta_condition_pour_que_ton_objet_soit_supprimé) {
              ton_vector.erase(it);
         }
    }

  5. #5
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    Ce qu'il faut savoir c'est que tu pourras toujours obtenir un it�rateur tr�s facilement � partir d'un indice :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    std::vector<xxx> v;
    std::vector<xxx>::iterator it = v.begin() + 5;
    v.erase(it);
    Mais les suppressions al�atoires dans un vecteur ne sont pas ce qu'il y a de plus rapide, en g�n�ral on pr�f�re les listes pour �a. Enfin bon �a d�pend du contexte.

  6. #6
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    Et quand tu envisages des retraits, il ne faut pas r�fl�chir en termes d'indices -- surtout dans les listes (qui sont cha�n�es).

    Identifies l'�l�ment qui t'int�resse par son it�rateur (d'autant que toutes les fonctions de recherche renvoient des it�rateurs, et non des indices), et s�vis.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

  7. #7
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    120
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 120
    Par d�faut
    Citation Envoy� par Laurent Gomila
    Ce qu'il faut savoir c'est que tu pourras toujours obtenir un it�rateur tr�s facilement � partir d'un indice :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    std::vector<xxx> v;
    std::vector<xxx>::iterator it = v.begin() + 5;
    v.erase(it);
    Mais les suppressions al�atoires dans un vecteur ne sont pas ce qu'il y a de plus rapide, en g�n�ral on pr�f�re les listes pour �a. Enfin bon �a d�pend du contexte.
    Tout d'abord, merci � tous pour vos r�ponses.

    Sinon, Laurent (Gomila) le code que tu m'as donn� pour les vector ne marche pas pour les list. Est-ce qu'il est possible de faire la m�me chose avec des list ou pas.

Discussions similaires

  1. R�ponses: 9
    Dernier message: 25/08/2009, 13h31
  2. Equivalent de Jfreechart [Java] en VB.net
    Par guandal dans le forum VB.NET
    R�ponses: 2
    Dernier message: 31/01/2007, 10h47
  3. Equivalent de ByteBuffer (Java) en C#
    Par vandamme dans le forum C#
    R�ponses: 2
    Dernier message: 23/01/2007, 21h34
  4. [Info]equivalent chdir en java
    Par man4surfs dans le forum API standards et tierces
    R�ponses: 8
    Dernier message: 18/07/2005, 09h41
  5. [C#] Equivalence des API java en C# en ligne
    Par totoranky dans le forum Windows Forms
    R�ponses: 6
    Dernier message: 15/02/2005, 01h16

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