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 :

conversion d'un pointeur de données vers un STL vector


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 170
    Par défaut conversion d'un pointeur de données vers un STL vector
    Bonjour,

    j'ai des données dans un vecteur pointé par un pointeur d' "int", et je désirerai y acceder par un vecteur stl.
    Est-il possible de transférer mes données vers un vector<int> sans les recopier?

    donc j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int *dataVect
    vector<int> dataSTL
    et je voudrai faire un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    dataSTL.begin()=dataVect;
    dataSTL.end()  =dataVect[sizeVect-1];
    Comment puis-je faire ça?

    Merci d'avance.

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par velkouby Voir le message
    Bonjour,

    j'ai des données dans un vecteur pointé par un pointeur d' "int", et je désirerai y acceder par un vecteur stl.
    Est-il possible de transférer mes données vers un vector<int> sans les recopier?

    donc j'ai:
    int *dataVect
    vector<int> dataSTL
    et je voudrai faire un truc du genre:

    dataSTL.begin()=dataVect;
    dataSTL.end() =dataVect[sizeVect-1];

    Comment puis-je faire ça?

    Merci d'avance.
    Bonjour.
    Non. C'est pour faire quoi??
    par contre tu peut faire le contraire.
    Le vector certifie que les donné sont contiguë et que le premier élément est a l'adresse:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    vector<int> MyVector(100);
    int * ptab =&MyVector[0]
    Il faut savoir qu'un pointeur d'un tableau C est equivalent à un iterateur

  3. #3
    Membre confirmé

    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 170
    Par défaut
    Merci pour cette réponse, car j'allais la posée aussi.

    Non. C'est pour faire quoi??
    Si je veux faire un truc aussi tordu, c'est par ce que mes données font près de 1Go en mémoire et je ne veux pas les recopier
    Par contre j'ai trouvé la réponse à ma première question:

    Il existe un constructeur de vector avec adresse de début et de fin, mais il semble qu'il recopie les données (bien que cela a l'air un peu trop rapide...)
    je vais regardé ça.

  4. #4
    Membre confirmé

    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 170
    Par défaut
    le constructeur par adresse recopie les donnée précisées entre les deux pointeurs. Donc mon problème n'est toujours pas résolu.

    Si quelqu'un a une solution....

  5. #5
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Tu as besoin de l'interface vector pour quel raison??

  6. #6
    Membre confirmé

    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 170
    Par défaut
    j'ai tout un ensemble de fonction utilisant les stl vectors pour traiter mes données, et j'ai un module auquel je ne peux pas toucher qui permet de lire mes données. Mon problème est de les faire communiquer.

    Je peux me permettre de recopier mes données car j'ai beaucoup de RAM, mais j'aimerai bien éviter ça.

    De toute manière, il semble que les STL sont bien protéger, justement pour éviter de faire ce que je veux faire.

    Je me dirige vers une autre idée, qui consiste à recopier mon vecteur en les désallouant à mesure que je le recopie. D'où ma question: Peut-on dèsallouer partiellement un vecteur qui a été alloué par un new en un bloc? (je pense que la réponse et non...)

Discussions similaires

  1. conversion d'une base de donnée Access vers Sql server
    Par elgaied dans le forum Modélisation
    Réponses: 6
    Dernier message: 22/01/2010, 12h26
  2. Réponses: 1
    Dernier message: 17/12/2007, 12h08
  3. Réponses: 3
    Dernier message: 19/12/2004, 14h30
  4. [socket] envoyer des données vers un port com
    Par Slimer dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 20/07/2004, 17h35
  5. Transfert de données vers My SQL
    Par zoso dans le forum Outils
    Réponses: 2
    Dernier message: 30/09/2003, 10h21

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