在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是不同的类,要小心,瞧你的
C/C++ code
  String STR = str1;
  string str = STR.c_str();