我的C++頭有一些代碼片段如下所示:如果找不到地圖元素會返回什麼?
private:
std::map<std::string, std::vector<std::vector<unsigned short> > > m_usIRDataPool;
public:
std::vector<std::vector<unsigned short> >& IRChannelData(std::string sChannelName);
在它的實現文件(的.cpp),IRChannelData()
具有以下定義:
std::vector<std::vector<unsigned short> >& MyClass::IRChannelData(std::string sChannelName)
{
std::map<std::string, std::vector<std::vector<unsigned short> > >::iterator it = m_usIRDataPool.find(sChannelName);
if (it != m_usIRDataPool.end())
{
return it->second;
}
// return ????; // How can I return?
}
那麼,什麼將返回如果沒有進入被找到(向量的向量)在m_usIRDataPool
地圖容器擺脫
warning C4715: 'MyClass::IRChannelData' : not all control paths return a value.
你問你應該返回什麼?或者你問如果你不返回任何東西會返回什麼? –
[返回數組元素時,非const引用無效初始化]的可能重複(http://stackoverflow.com/questions/7376985/invalid-initialization-of-non-const-reference-when-returning-an-array -element) – Nawaz
@Ben:最後一句似乎表明前者。 – Xeo