map 在BCB 里怎么实现? 新手问题。

时间:2022-12-11 20:29:53
 声明的时候 字符串str 是小写的 string 声明的。
但是在BCB 里不是大写的 String 声明么


求解 ???(接收数据库返回的信息,用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;
                        str=str1;


                       // m.insert(pair<string,int>(str1,x1);

                        qry1->Next();
                }
               /* for(p=m.begin();p!=m.end();p++)
                {
                        ShowMessage(p->first);
                        ShowMessage(p->second);

                        //cout<<p->first<<"  "<<p->second<<endl;
                }  */


下面个代码可以编译过去。

#include <vcl.h>

#include <iostream>
#include <map>
#include <string>
using namespace std;
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
        map<string,int>  m;
        map<string,int>::iterator p;

        string str;
        str="std";

        m.insert(pair<string,int>(str,1));


        for(p=m.begin();p!=m.end();p++)
        {
                cout<<p->first<<"  "<<p->second<<endl;
        }

        system("pause");


        return 0;
}


5 个解决方案

#1


一个是std::string,一个是bcb的类String

要转化一下

#2


将String转化为string类型使用,如下

String STR = "superman";
string str = STR.c_str(); 

#3


 String STR = "superman";
string str = STR.c_str(); 

字符串类型需要转换, 那么int 型也需要转换么?

#4


测试了下。可以了。 可以在问个问题么? 就是 我 打这段代码也不让用。难道其中还有什么问题么?
                  for(p=m.begin();p!=m.end();p++)
                {
                        ShowMessage(p->first);
                        ShowMessage(p->second);


                }

#5


++p

#1


一个是std::string,一个是bcb的类String

要转化一下

#2


将String转化为string类型使用,如下

String STR = "superman";
string str = STR.c_str(); 

#3


 String STR = "superman";
string str = STR.c_str(); 

字符串类型需要转换, 那么int 型也需要转换么?

#4


测试了下。可以了。 可以在问个问题么? 就是 我 打这段代码也不让用。难道其中还有什么问题么?
                  for(p=m.begin();p!=m.end();p++)
                {
                        ShowMessage(p->first);
                        ShowMessage(p->second);


                }

#5


++p