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

SL & STL C++ Discussion :

transformer [i][j] en [k] avec accès en temps constant


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 127
    Par défaut transformer [i][j] en [k] avec accès en temps constant
    Bonjour, je rencontre le problème suivant, assez délicat:

    Je désire utiliser une structure de vecteur de vecteurs (std::vector) me permettant les opérations suivantes:

    vect[i] me renvoie le ième éléments de liste qu'on obtiendrait en fusionnant les vecteurs contenu dans un vecteur. Par exemple sur la structure suivante:
    v1 v2 v3 v4
    [2] [5] [9] [6]
    [3] [0] [9]
    [4] [2]

    l'opérateur vect[6] me renverrait 9. Je veux que cette opération se fasse en temps constant O(1). Je pense que c'est possible car les éléments d'un vecteurs sont contigus en mémoire, du coup les éléments d'un vecteur de vecteur le sont aussi non?

    Cela dit je ne vois pas du tout comment coder une classe qui me permettrait ce genre de comportement. Et comment redéfinir les itérateurs pour ce cas de figures?

    Cordialement,

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Ce n'est pas possible à moins qu'il y ait une relation entre la position du i-ème vecteur, sa taille, et la taille du vecteur de vecteurs.

  3. #3
    Invité
    Invité(e)
    Par défaut
    As tu regardé le conteneur valarray? Il me semble que ce que les "vecteurs de vecteurs" dont tu parles sont assez voisines des slices...

    Francois

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par Benoit_T Voir le message
    Je pense que c'est possible car les éléments d'un vecteurs sont contigus en mémoire,
    Oui
    Citation Envoyé par Benoit_T Voir le message
    du coup les éléments d'un vecteur de vecteur le sont aussi non?
    non.
    Supposons une définition simpliste de vector:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    template<class T>
    class vector
    {
    private:
      T *valeurs;// valeurs= new T[nbr_element];
    }
    Les éléments T de vector<T> sont biens contigus en mémoire
    vector<vector<T>> : les vector<T> sont contigus en mémoire mais pas les T.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 127
    Par défaut
    merci effectivement mon raisonnement n'était pas très logique.

    Cordialement,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. SSH Tunneling: utilisateur avec accès limité
    Par litbos dans le forum Réseau
    Réponses: 5
    Dernier message: 19/08/2006, 07h08
  2. Fonction avec accès a tous ??
    Par crakos dans le forum C++
    Réponses: 6
    Dernier message: 08/05/2006, 17h59
  3. [WD8] Requêtes paramétrées avec accès odbc direct
    Par devalender dans le forum WinDev
    Réponses: 5
    Dernier message: 20/12/2005, 12h25
  4. Flux avec accès aléatoire
    Par smyley dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 29/11/2005, 02h03
  5. [Date] Comment transformer mon String en date avec newDate?
    Par Devil666 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 10/06/2005, 16h50

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