Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [c++ stl]Multimap

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++ stl]Multimap

    Ciao.
    Non sono riuscito a capire del tutto il multimap stl , ho capito che il multimap accetta piu' elementi anche con la stessa chiave ,ma di valore diverso (penso ,questo non mi è chiaro).
    Vi spiego cosa vorrei fare:
    Ho una lista di comandi testo ad es:'BEAM','POLY','SECTION' in un file txt una per linea con eventuali parametri per cui utilizzo una struttura opportuna i BEAM saranno in un multimap m_mapBEAM l POLY saranno in un multimap m_mapPOLY ecc...
    Il problema è che posso avere piu' elementi con chiave e valore uguale e nel qual caso vorrei potere scorrere come in un array lo stesso elemento.
    ad es:
    codice:
    #BEAM#ID=0#VALUE=1
    #BEAM#ID=1#VALUE=2
    #BEAM#ID=2#VALUE=3
    #BEAM#ID=2#VALUE=3
    
    vorrei poter fare cosi:
    la chiaveè ID , il valore VALUE
    int nbeam = m_mapBEAM[0]
    nbeam = 1
    int nbeam = m_mapBEAM[1]
    nbeam = 2
    int nbeam = m_mapBEAM[2]
    nbeam = 3
    int nbeam = m_mapBEAM[2]// l'elemento esiste gia ma lo posso leggere 2 volte perchè sono 2.
    In pratica vorrei che per la stessa chiave possano esistere n elementi uguali accessibili con un indice.
    grazie.

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    un multimap è all'incirca un vettore di vettori.. come tale hai un primo indice che indica le chiavi e un secondo per indicare i valori (o valore)..

    ciò che serve a te, secondo me è crearti una tua struttura contenente la coppia chiave-valore e inserirla in un'opportuna struttura lista (va bene vector per esempio)

    se ho capito bene però tu vorresti accede all'insieme di valori uguali con un solo indice.. quindi ti conviene usare una struttura più complessa:

    [id] -> [ struttura1, struttura2]
    [id] -> [ struttura 1]
    [id] -> [ struttura 1]
    [id] -> [ struttura1, struttura2, struttura3]

    in questo modo in pseudocodice:

    vector[indice][pos_struttura] indicherà la tua struttura

    codice:
    int nbeam = m_mapBEAM[0][0] //ne hai solo 1
    nbeam = 1
    int nbeam = m_mapBEAM[1][0] //ne hai solo 1
    nbeam = 2
    int nbeam = m_mapBEAM[2][0] //ne hai 2 prendi il 1°
    nbeam = 3
    int nbeam = m_mapBEAM[2][1] //ne hai 2 prendi il 2°

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.