Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » auf map aus verschiedenen methoden zugreifen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
06.03.2007, 20:26 Uhr
Chiflada



also, ich habe eine map als attribut einer klasse.
im konstruktor erzeuge ich sie auf dem heap und speichere daten hinein.
in einer anderen methode, wo ich sie wieder auslesen will, ist aber nichts in der map enthalten....

gibt es da irgendetwas was ich noch beachten muß?

ps: die map als parameter zu übergeben kommt leider nicht in frage.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.03.2007, 21:21 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Zeig mal etwas Code - evtl machste was falsch.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.03.2007, 21:37 Uhr
Chiflada



aus dem konstruktor:


C++:

lineEdits = new std::map<char*, QLineEdit*>();

    for(int i=1; i<ncol; i++){
    QString *label = new QString(result[i]);
    grid->addWidget(new QLabel(*label, this), i, 0);
    lineEdits->insert(std::map<char*, QLineEdit*>::value_type(result[i], new QLineEdit("Add data here", this, 0)));

    std::map<char*, QLineEdit*>::iterator iter = lineEdits->find(result[i]);
    if(iter != lineEdits->end())
    {
        grid->addWidget((*iter).second, i, 1);
        ++iter;
    }
    }



und aus der methode, die die map benutzt:


C++:
std::map<char*, QLineEdit*>::iterator iter;
    std::string query ="insert into records values (";
    for (int i=1; i<ncol; i++){
    iter = lineEdits->find(result[i]);
    if(iter != lineEdits->end())
    {
        lineEdit = (*iter).second;
        text = lineEdit->text();
        query = query + "'" + text.latin1() + "'";    
        ++iter;
    }
    }
    query = query + ")";
    DbControl::executeQuery(query);
    DbControl::freeTable();

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.03.2007, 08:11 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi,
benutz make_pair anstatt von std::map<char*, QLineEdit*>::value_type

Ansonsten was ist result[i]? wie wird das benutzt?

Evtl benutzt du den gleichen Speicherbereich mehrfach - wodurch du deine Map korrupierst.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.03.2007, 10:00 Uhr
Chiflada



also, result ist ein char* array, da stehen ergebnisse aus ner datenbank abfrage drin.
komischerweise muß ich die allerdings in der zweiten methode auch noch mal neu einlesen, obwohl result ein attribut der klasse ist....
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.03.2007, 17:25 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


Wenn du schon QT nutzt, kannst du auch die QT Implementierung nutzen
--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
08.03.2007, 00:54 Uhr
Chiflada



problem ist jetzt gelöst
es lag an der ncol variable, die nicht mehr mit der aus dem konstruktor übereinstimmte. warum weiß ich leider immer noch nicht, aber dafür funktionierts jetzt erstmal....
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
08.03.2007, 09:11 Uhr
stephanw
localhorst



Zitat von J-jayz-Z:
Wenn du schon QT nutzt, kannst du auch die QT Implementierung nutzen

Darüber kann man streiten. Ich sehe das anders. Je weniger man von einer solchen Lib benutzt, umso einfacher fällt der eventuelle Wechsel ;-)
Qt bietet natürlich auch eine ganze Menge Container- und Utility-Klassen ähnlich der Standard-Bibliothek an. Aber, nur weil man Qt für das GUI nutzt, muss man nicht alles von Qt verwenden. Erst recht dann nicht, wenn es passenden Ersatz im Standard gibt.
--
Reden ist Schweigen und Silber ist Gold.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: