Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++stl]map e vector , tipi

    ciao.
    Devo raccogliere dei dati che possono essere float o int o bool.
    Per ognuno di questi dati ho un vector(e non so di che tipo) che è un item di un map<string,vector*<???> >

    in pratica ho delle chiavi stringa e sotto ognuna di esse un vector di tipo T, il problema è che posso avere varie stringhe come chiavi e su ogni chiave un vector di tipo diverso:


    map["str1"] = new vector<float>;
    map["str2"] = new vector<int>;
    map["str3"] = new vector<int>;


    è possibile avere una mappa che contiene vector di tipo diverso?
    devo forse usare una classe con un template?
    i tipi sono tutti tipi primitivi e non posso farli derivare da una classe base.
    posso pero avere una classe CTypeGeneric con i 3 tipi incapsulati e andare a riempire il tipo che mi serve e avere una mappa:
    map<string, CTipeGeneric>


    ma non mi sembra una buona soluzione.
    Ho letto su boost che esiste una libreria con un tipo variant , il problema è che non vorrei usare boost e che i vector contengono dati dell' ordine dei 100000 150000 elementi, quindi la memoria occupata è importante.
    ciao.

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381

    Re: [c++stl]map e vector , tipi

    Originariamente inviato da giuseppe500
    ma non mi sembra una buona soluzione.
    Purtroppo è l'unica, visto che non si può avere la stessa mappa istanziata con vector contententi tipi diversi tra loro.
    L'approccio terra terra che userei io è creare CTypeGeneric in modo che manipoli in modo controllato i dati in una union, tenendo presente che un bool è convertibile a int e quindi i tipi memorizzabili si riducono a due.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    Perchè non vuoi usare boost?


    Dai un occhiata qui
    Fracty - The Fractal Generator



    If you cannot choose a concise name that expresses what the method does, it is possible that your method is attempting to perform too many diverse tasks.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.