//不能用下标操作查询单词s是否存在,因为下标操作在单词不存在的
//情况下会往map中添加单词,正确的做法用find
auto ret = wm.find(s); //find返回的是迭代器
if(ret == wm.end())
//这里必须新建一个set
对象,内容为空,不然
//对此时返回的QueryResult对象中的有关wm对象的一切操作均会报错,因为没有分配内存,是不能使用的。
//智能指针使用前必须要里面有内容,也就是分配了内存
auto nodata = make_shared>();
return QueryResult(file,nodata,s);
//注意迭代器其实就是一个指针,用->访问迭代器所指的pair
return QueryResult(file,ret->second,s);
map的find(s)成员,目的是在map中查找关键字s的pair,找到后返回指向关键字为s的pair的迭代器,找不到那么就会返回尾后迭代器,切记
迭代器其实就是一个指针
,用迭代器访问pair的first或者second成员方法是:iter->first 或 iter -> second
不能用.号。
QueryResult TextQuery::query(const string &s)const{//不能用下标操作查询单词s是否存在,因为下标操作在单词不存在的//情况下会往map中添加单词,正确的做法用findauto ret = wm.find(s); //find返回的是迭代器if(ret == wm.end()) { //这里必须新建一个set<line_no>对象,内容为空,不然 //对此时返回的QueryResult对象中的有关wm对象的一切操作均会.
C++
map
find()用法一级目录二级目录三级目录
https://vimsky.com/examples/usage/
map
-find-function-in-c-stl.html
unordered_
map
<int, int> my
map
;
my
map
.insert({1,2});
auto it = my
map
.find(1); //
返回
值
为迭代器
if (it != my
map
.end()) { // 不存在
返回
尾迭代器my
map
.end()
cout << it->first << it->second <<
谢谢原博对我学习上的帮助,原文地址:https://www.cnblogs.com/Deribs4/p/4948351.html使用count,
返回
的是被查找元素的个数。如果有,
返回
1;否则,
返回
0。注意,
map
中不存在相同元素,所以
返回
值
只能是1或0。使用find,
返回
的是被查找元素的位置,没有则
返回
map
.end()。#include<string>
#include<cst...
当参数表为空时,表示该函数不从调用函数接受数据。
2、数
值
参数
传
值
调用:形参只有在函数被调用时,才被分配内存区域,并一直保留到函数
返回
时被撤销为止。形参和实参只是名字相同,各自占有各自的内存空间和生存周期,因此他并不能改变主调函数中的变量。
3、地址参数
传址调用:传送的是变量的地址,尽管主函数和被调函数各自在自己的变量上操作,但他们的地址是
unordered_
map
的find()函数
返回
一个迭代器,指向查找到的元素。如果在unordered_
map
中找到了指定的键,则
返回
指向该键
值
对的迭代器;否则,
返回
unordered_
map
的end()迭代器。
具体来说,find()函数的
返回
类型
是一个迭代器,可以使用auto关键字自动推断
类型
,或者显式指定为unordered_
map
的迭代器
类型
,如unordered_
map
<Key, T>::iterator。
下面是一个示例,演示了如何使用find()函数并处理其
返回
值
:
```cpp
#include <iostream>
#include <unordered_
map
>
int main() {
std::unordered_
map
<std::string, int> u
map
;
// 插入键
值
对
u
map
["apple"] = 5;
u
map
["banana"] = 2;
u
map
["orange"] = 8;
// 使用find()查找元素
auto iter = u
map
.find("banana");
if (iter != u
map
.end()) {
std::cout << "Found value: " << iter->second << std::endl;
} else {
std::cout << "Key not found!" << std::endl;
return 0;
在这个示例中,我们创建了一个unordered_
map
对象,并插入了几个键
值
对。然后,我们使用find()函数来查找键为"banana"的元素。如果找到了该元素,我们打印出它的
值
;否则,打印出"Key not found!"。输出结果将是:
Found value: 2
需要注意的是,如果unordered_
map
中存在多个具有相同键的元素,则find()函数只
返回
第一个匹配的元素的迭代器。如果需要查找所有匹配的元素,可以结合使用equal_range()函数或使用范围遍历。
发狂的蜗牛: