c++错误之map的find()返回值类型
生活随笔
收集整理的這篇文章主要介紹了
c++错误之map的find()返回值类型
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
QueryResult TextQuery::query(const string &s)const
{
//不能用下標操作查詢單詞s是否存在,因為下標操作在單詞不存在的
//情況下會往map中添加單詞,正確的做法用find
auto ret = wm.find(s); //find返回的是迭代器
if(ret == wm.end()){//這里必須新建一個set<line_no>對象,內容為空,不然//對此時返回的QueryResult對象中的有關wm對象的一切操作均會報錯,因為沒有分配內存,是不能使用的。//智能指針使用前必須要里面有內容,也就是分配了內存auto nodata = make_shared<set<line_no>>();return QueryResult(file,nodata,s);}//注意迭代器其實就是一個指針,用->訪問迭代器所指的pairreturn QueryResult(file,ret->second,s);
}
map的find(s)成員,目的是在map中查找關鍵字s的pair,找到后返回指向關鍵字為s的pair的迭代器,找不到那么就會返回尾后迭代器,切記迭代器其實就是一個指針,用迭代器訪問pair的first或者second成員方法是:iter->first 或 iter -> second
不能用.號。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的c++错误之map的find()返回值类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python的16.1节课后练习16-2
- 下一篇: c语言现代方法16章 基础、课后习题、基