Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C++] Aiuto con l'uso di vector

    Salve a tutti,

    sto impazzendo con l'utilizzo di vector, dopo aver letto molti esempi a destra e sinistra, ma non riesco a fare quello che mi serve.

    Ma veniamo al problema.
    Ho un pezzo di codice che mi restituisce un ResultSet con dei dati prelevati da un database, e questo funziona perfettamente.

    Ora vorrei raggruppare questi dati in una lista di oggetti e restituirli al chiamante della funzione.

    Ecco cosa faccio:
    codice:
    vector<Person> *list;
    vector<Person>::iterator i;
    int rows;
    
    [...]
    
    res = stmt->executeQuery(FIND_ALL);
    rows = res->rowsCount();
    
    [...]
    
    list = new vector<Person>(rows);
    i = list->begin();
    
    while(res->next() && i!=list->end()){
    list->insert(i,Person(res->getString("NAME"),
    	res->getString("SURNAME"),
    	res->getString("CITY"),
    	res->getInt("NUMBER")));
    	++i;
    }
    i = list->begin();
    return list;
    il tipo di ritorno della funzione è: vector<Person> *.
    Però non c'è verso di avere questi dati in un vettore di Person dal lato del chiamante.
    Dove ho sbagliato?

  2. #2
    OK,

    per fortuna, come ogni tanto mi succede, dopo la decisione di chiedere aiuto qui, trovo una soluzione all'n+1esimo tentativo. Ed ecco come sono riuscito a risolvere.

    La funzione che produce il vector, ora ritorna il tipo di risultato vector<Person> e non più un puntatore.

    A questo punto, ho fatto come segue:

    codice:
    vector<Person> list;
    
    [...]
    
    while(res->next()){
        list.push_back(Person(res->getString("NAME"),
    	res->getString("SURNAME"),
    	res->getString("CITY"),
    	res->getInt("NUMBER")));
    }
    
    [...]
    return list;
    Dal lato del chiamante invece:

    codice:
    vector<Person> list;
    
    list = PersonController::findAll(con);
    
    for(unsigned int i=0; i<list.size(); i++){
    	cout << list[i].getName() << endl;
    }
    Grazie, e spero che comunque questo post possa servire ad altri che come me hanno poca esperienza in C++.

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.