迭代器 引用
const set<TextQuery::line_no>& TextQuery::run_query(const string &query_word)const
{
map< string,set<line_no> >::const_iterator
loc=word_map.find(query_word);
if(loc==word_map.end())
return set<line_no> ();
else
return loc->second;
}
map<std::string,set<line_no> > word_map; 类的数据成员
现在的问题是:
大家都知道不能返回一个局部对象的引用 map< string,set<line_no> >::const_iterator loc=word_map.find(query_word); 这里的locs是一个const类型的迭代器,是一个局部变量吧 现在返回的是一个局部变量引用 程序竟然能够跑起来 运行正确
为什么这里能够返回一个局部对象的引用啊 很是不解
在线等待
大家帮帮忙 分不是很多了 不好意识