望哪位高人,替 赤之类 解决一下在VC++6.0中使用容器map错误的问题

worldbankc 2005-06-06 08:43:35
#include<iostream>
#include<string>
#include<map>
using namespace std;

typedef struct tagString{
tagString(){str="";}
tagString(const char *cch){str=cch;}
tagString(const string &cstr){str=cstr;}
string str; }sctString;


typedef struct tagMyHeaderType{
string buf1;
string buf2;
string first1;
string first2;
bool xing;//xing=0;为数(字符串)字型 xing=1为 字符串型
int count;
}MHT;

int main()
{ map<int,char> m; //m.insetr(pair<int,char>(i,char(i)));
pair<int,char> pr; //m.insert(pr);
pair<map<int,char>::iterator,bool> pib;
for(int i=0;i<128;i++)
{
pr.first=i;pr.second=char(i);
pib=m.insert(pr);// (A)

//该程序第一部分编译虽然能通过,但是有很多警告问为什么?
//怎么写才能消除它的警告.

//(1) pib=m.insetr(pair<int,char>(i,char(i)));
//在VC++6.0 中象 (1) 这样插入文件将编译错误
//书上这样插入是可以的.谁能告诉我,VC++6.0中为什么不能这样插入.
if(!pib.second)cout<<" bool = "<<pib.second;
}

//第二部分程序 ********************************************************************


map<sctString,MHT> mp;
pair<sctString,MHT> prm;

prm.first.str="A"; prm.second.buf1="buf1";
//对结构体中的数据进行初始化,实际程序每项都作了初始化,这里就不详细写了.
//这个程序 是一个大型程序的一部分. 我只将其中有错误的部分给取出来,并作了简化.
//你不要管这个程序是做什么的,这个程序主要是语法错误. 你们替我看看到底错在什么地方.
//为什么编译总出错,且又有那么多警告,望哪位高人替赤之类指点迷经.

//VC++6.0中对容器map的使用标准与教材上怎么不太一样.

mp.insert(prm);


map<sctString,MHT>::iterator p=mp.begin();


while(p!=mp.end())

{

if((p->second).xing==0)cout<<"\n"<<(p->second).first1;
else cout<<"\n"<<(p->second).buf1;
if(((p->second).buf2.size())>0)cout<<"\n"<<((p->second).buf2);
cout<<"\n"<<(p->second).first2;
p++;
}

sctString sctstr; cin>>sctstr.str;

p=mp.find(sctstr);
if(p!=mp.end())cout<<(p->second).count;


return 0;
}
...全文
100 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
foochow 2005-06-06
  • 打赏
  • 举报
回复
typedef map<int,char>maps;
typedef pair<int,char>pr;
int main()
{
maps temp;
pair<map<int,char>::iterator,bool>pib;
for(int i=0;i<128;i++)
{

pib=temp.insert(pr(i,char(i)));
if(!pib.second)cout<<" bool = "<<pib.second;
}
return 0;
}
qhfu 2005-06-06
  • 打赏
  • 举报
回复
vc 6.0对标准支持很差的,改个开发工具吧! 或者升级一下
foochow 2005-06-06
  • 打赏
  • 举报
回复
好像弄错了^_^
foochow 2005-06-06
  • 打赏
  • 举报
回复
pib=m.insetr(pr(i,char(i)));
VC6.0编译肯定会出现很多警告,对新标准支持不太好,用VS.2003就不会出现警告

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧