再问一下!这个更简单!可我不理解,哎,太笨了!

zhdleo 2002-05-22 04:58:14


我还有个问题:不好意思麻烦大家了!

根据定义:end返回的是vector的最后一个元素的下一个地址

那你说他的内容是NULL吗??

是不是可以用它来判断?
比如:map<string,int>::const_iterator it word_map是个map search_work是个string
if ( ( it = word_map.find(search_work) != word_map.end() )
这样的判断。如果word_map.find(search_work有内容,是不是if成立?
即表示word_map.end()是NULL?
...全文
46 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
javaxbenz 2002-05-23
  • 打赏
  • 举报
回复
UP
garfield_82 2002-05-23
  • 打赏
  • 举报
回复
container.end()传回的是一个past-the-end即越过尾端的pointer,你不能对它进行提领或累加,它只能进行比较,这时c/c++中的一个特殊规则。

你可以参看《泛型程式设计与stl》p.12的相关内容。
fangrk 2002-05-22
  • 打赏
  • 举报
回复
it = word_map.find(search_work)
如果找到了,返回指向search_work的指针,否则返回word_map.end()
it!=word_map.end()
比较的是指针,而不是指针的内容
比较指针的内容应该是:*it!=*word_map.end();
*container.end()应该是未定义。

下班了
fang_jb 2002-05-22
  • 打赏
  • 举报
回复
这个if拆出来应该是这样
it=word_map.find()
if(it!=word_map.end())

end给的是一个标志,返回的iterator表示当前操作的map的一种状态,
在具体实现上给的是null还是别的什么,我不太清楚,没注意过源码,
不过我想它和feof()之类的操作应该是一个道理的

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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