大家有兴趣来看看

stefaniemarkc 2009-03-31 05:18:24
std::map<const char*,string> map1;
for(int i =0;i<4;i++)
{
char* sztemp = new char[2];
strncpy(sztemp,"1",1)[2]=0;
map[sztemp]="qwer";
}

运行后,这个map的size()是几 大家觉得
...全文
82 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
stefaniemarkc 2009-04-01
  • 打赏
  • 举报
回复
std::map <const char*,string> map1;
for(int i =0;i <4;i++)
{
char* sztemp = new char[2];
strncpy(sztemp,"1",1)[1]=0;
map1[sztemp]="qwer";
}

题目写的有点问题,应该是上述这样的
map1.size()是4
因为key存放的是指针,虽然内容一样,但是指针本身的地址不同,所以 size()是4
后来想通了。
谢谢各位
M_S_D_N 2009-03-31
  • 打赏
  • 举报
回复
我在想每次new出来的char[2]内容应该一样吧?
strncpy(sztemp,"1",1)[2]=0; 这个似乎越界操作了吧?在delete [] sztemp的时候肯定会崩。
leewon1988 2009-03-31
  • 打赏
  • 举报
回复
这里map的key重复了?
莫非是1???
菜鸟闪过。。。
说的不对lx改正
Rain208 2009-03-31
  • 打赏
  • 举报
回复

see see
lingyin55 2009-03-31
  • 打赏
  • 举报
回复
size不是4吗?
  • 打赏
  • 举报
回复
map <const char*,string> map1;
for(int i =0;i <4;i++)
{
char* sztemp = new char[2];
strncpy(sztemp,"1",1);
map1[sztemp]="qwer";
}
改成这样还差不多。
size就是4啊,有什么问题?
stefaniemarkc 2009-03-31
  • 打赏
  • 举报
回复
come on
stefaniemarkc 2009-03-31
  • 打赏
  • 举报
回复
起来啊 熊起来啊

64,642

社区成员

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

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