warning C4172: returning address of local variable or temporary

清泛原创

warning C4172: returning address of local variable or temporary

//返回单词出现的行号set  
const set<int> & TextQuery::RunQuery(string word) const  
{       
      map< string,set<int> >::const_iterator it = m_mapWordLine.find(word);  
      if(it != m_mapWordLine.end())  
        return it->second;  
      else  
        return set<int>();//emptyset  
}
解决方法愿意是返回set对象的const引用以减轻复制set对象的负担,但是这里返回空的set对象的局部引用是错误的,c++ primer 原文采用的方法是返回set对象,不使用引用,这也是一种解决方法。另外使用std::vector<std::string>::size_type  比int型的set好。

warning C4172

分享到:
评论加载中,请稍后...
创APP如搭积木 - 创意无限,梦想即时!
回到顶部