社区
C++ 语言
帖子详情
find 的用法
acdbxzyw
2009-03-22 08:41:42
这个 这个。。。
stl find 的用法有点忘了
map<string,int>::iterator it = m.find(read);
//map<string,int>::iterator it = find(m.begin(),m.end(),read);
第二句是错的
不知道错哪儿了
前辈告诉一声啊 呵呵
...全文
308
6
打赏
收藏
find 的用法
这个 这个。。。 stl find 的用法有点忘了 map::iterator it = m.find(read); //map::iterator it = find(m.begin(),m.end(),read); 第二句是错的 不知道错哪儿了 前辈告诉一声啊 呵呵
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
acdbxzyw
2009-03-25
打赏
举报
回复
[Quote=引用 5 楼 liqinghua1653 的回复:]
引用 3 楼 joanlynnlove 的回复:
楼上
不好意思 还是看不太懂。。。
我那个第一个是返回的迭代器 第二个咋就不行了?
你说的这个模板也是返回的迭代器吧
搞不通呀
map的的iterator是std::pair <T1,T2>类型的指针. 在std::find函数中是通过*iterator和value比较, 想想看std::pair <T1,T2>类型的东西怎么能和T1类型比较啊.
while(first != last && *first != value) ++first;
*first != value里面的*first是s…
[/Quote]
我明白你的意思,但是在第一种方法里可以直接用 T1 类型的,第二种不能,能告诉我怎么用第二种方法吗
因为不知道map m 里面有没有以 string read 为关键字的 项,所以不好写这个pair 类型
如果写成 find (m.begin(),m.end(),make_pair(read,m[read]));
则明显是错误的 不仅写法可能有问题,而且如果原来没有m[read]项,则在查询时就会创建m[read]项
到底有没有针对 map 的第二种用法呢?如果有,怎么写,还请前辈赐教!
谢谢!O(∩_∩)O
liqinghua1653
2009-03-24
打赏
举报
回复
[Quote=引用 3 楼 joanlynnlove 的回复:]
楼上
不好意思 还是看不太懂。。。
我那个第一个是返回的迭代器 第二个咋就不行了?
你说的这个模板也是返回的迭代器吧
搞不通呀[/Quote]
map的的iterator是std::pair<T1,T2>类型的指针. 在std::find函数中是通过*iterator和value比较, 想想看std::pair<T1,T2>类型的东西怎么能和T1类型比较啊.
while(first != last && *first != value) ++first;
*first != value
里面的*first是std::pair<T1,T2>类型, value是T1类型. 怎么比啊. 所以肯定有错误的
freeskyo
2009-03-23
打赏
举报
回复
m 哪里定义的?
尽量用成员函数find去find的。
acdbxzyw
2009-03-22
打赏
举报
回复
[Quote=引用 2 楼 liqinghua1653 的回复:]
引用楼主 joanlynnlove 的帖子:
这个 这个。。。
stl find 的用法有点忘了
map <string,int>::iterator it = m.find(read);
//map <string,int>::iterator it = find(m.begin(),m.end(),read);
第二句是错的
不知道错哪儿了
前辈告诉一声啊 呵呵
补充一下
template <class InputIterator, class T>
InputIterator find <InputIterator first, InputIterator last, const T& value)
{
while(fi…
[/Quote]
楼上
不好意思 还是看不太懂。。。
我那个第一个是返回的迭代器 第二个咋就不行了?
你说的这个模板也是返回的迭代器吧
搞不通呀
liqinghua1653
2009-03-22
打赏
举报
回复
[Quote=引用楼主 joanlynnlove 的帖子:]
这个 这个。。。
stl find 的用法有点忘了
map <string,int>::iterator it = m.find(read);
//map <string,int>::iterator it = find(m.begin(),m.end(),read);
第二句是错的
不知道错哪儿了
前辈告诉一声啊 呵呵
[/Quote]
补充一下
template <class InputIterator, class T>
InputIterator find<InputIterator first, InputIterator last, const T& value)
{
while(first != last &&
*first != value
) ++first;
return first;
}
看看代码, 相信你就明白了*first != value编译不过的*first是一个std::pair<T1,T2>类型, value是T1类型。
liqinghua1653
2009-03-22
打赏
举报
回复
map的find是把数据和它里面iteraor的first比较
find是比较直接比较iterator, 这里iterator是一个std::pair<int,int>类型.
动词find的基本
用法
本文详细解析了find动词的各种
用法
,包括接双宾语、复合结构、that从句等,并对比了find与find out的区别。
find的
用法
本文通过一道高考英语题目,详细解析了非谓语动词的
用法
,特别是find的不同含义及其搭配结构,并对比了find与其他词汇的差异。
matlab中find()函数
用法
本文详细介绍了Matlab中find函数的基本
用法
,包括向量和矩阵的非零元素查找,以及进阶
用法
如根据特定条件筛选元素。通过实例演示了如何使用find函数获取元素位置、行号列号和满足特定条件的元素。
浅谈 Find 以及xargs一些
用法
本文详细介绍了Linux命令find的高级
用法
,包括按文件名、类型、时间戳、大小、权限查找文件,以及如何使用xargs处理大量文件。通过实例展示了find与xargs的强大功能。
Linux find
用法
示例
本文主要介绍了Linux中find命令的常见
用法
。详细说明了find命令的参数,如pathname、-print、-exec、-ok等的含义和作用,并给出了多个使用示例,包括按文件名、权限、时间等条件查找文件,以及对查找结果进行操作,还探讨了一些相关问题。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章