在BCB里,向MAP 里写入了数据,接收的时候如何接收啊(新手有关问题。好心人帮帮忙)
在BCB里,向MAP 里写入了数据,接收的时候怎么接收啊?(新手问题。好心人帮帮忙)
好心人帮帮忙,我刚刚接触这个,好心人帮帮忙给把这段代码改对了呗。。。
map<string,int> m;
map<string,int>::iterator p;
qry1->Close();
qry1->SQL->Clear();
qry1->SQL->Add("select fst,count(*) as cnt from tb_new group by fst");
qry1->Open();
while(!qry1->Eof)
{
String str1=qry1->FieldByName("fst")->AsString;
int x1=qry1->FieldByName("cnt")->AsInteger;
//ShowMessage(str1);
String STR = str1;
string str = STR.c_str();
m.insert(pair<string,int>(str,x1));
qry1->Next();
}
for(p=m.begin();p!=m.end();p++)
{
ShowMessage(p->first);
// ShowMessage(p->second);
}
------解决方案--------------------
ShowMessage只接受String,而p->first是string,要这样改一下:
ShowMessage(p->first.c_str());
String和string是不同的类,要小心,瞧你的
好心人帮帮忙,我刚刚接触这个,好心人帮帮忙给把这段代码改对了呗。。。
map<string,int> m;
map<string,int>::iterator p;
qry1->Close();
qry1->SQL->Clear();
qry1->SQL->Add("select fst,count(*) as cnt from tb_new group by fst");
qry1->Open();
while(!qry1->Eof)
{
String str1=qry1->FieldByName("fst")->AsString;
int x1=qry1->FieldByName("cnt")->AsInteger;
//ShowMessage(str1);
String STR = str1;
string str = STR.c_str();
m.insert(pair<string,int>(str,x1));
qry1->Next();
}
for(p=m.begin();p!=m.end();p++)
{
ShowMessage(p->first);
// ShowMessage(p->second);
}
------解决方案--------------------
ShowMessage只接受String,而p->first是string,要这样改一下:
ShowMessage(p->first.c_str());
String和string是不同的类,要小心,瞧你的
- C/C++ code
String STR = str1; string str = STR.c_str();