社区
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);
第二句是错的
不知道错哪儿了
前辈告诉一声啊 呵呵
...全文
307
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 后面接双宾语,近宾是对象,远宾是状态。远宾啥都能接,就是不接 动词不定式。Find的七种基本
用法
1. 作“找到、发现”后可接双宾语; 若双宾语交换位置用介词 for引出间接宾语。如: Please find me my key. =Please find my key for me. 请给我找到我的钥匙。 试比较。如: We found him a good tea...
matlab中find()函数
用法
一.基本
用法
返回矩阵或向量中非零元素的索引 注意:matlab中下标从1开始 举例: (1)向量 返回非零元素下标 find(vector) x=[1 2 3 0 0 6 7 8 9]; find(x) ans = 1 2 3 6 7 8 9 返回前k个非零元素的下标 find(vector,k) 或find(vector,k,‘first’) x=[1 2 3 0 0 6 7 8 9]; find(x,2) ans
find的
用法
请看下面一道高考题: A cook will be immediately fired if he is found ________ in the kitchen. A. smoke B. smoking C. to smoke D. smoked 乍一看,此题是综合考查非谓语动词的
用法
和区别。其实,细读题干,我们可以看出,理解句意及find的含义和
用法
是正确解此题的关键。全句...
浅谈 Find 以及xargs一些
用法
浅谈 Find 以及xargs一些
用法
一. Find find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。 语法如下: find [OPTION]... [查找路径] [查找条件] [处理动作] 查找路径:指定具体目标路径...
Linux find
用法
示例
ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在。也就是说其实这里的010和-是分开的,-表示一个至少的意思,而且010才是真正用来描述权限位的?"方法,我很早就试过几次,不过好像都不太对,参数 -atime n 是查找n天前被访问过的文件,我不明白的是这里的时间参照点是什么,以及这个n天是怎么计算的。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章