我的 C++ header 有一些代码片段,如下所示:
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
map 容器中找不到要删除的条目( vector 的 vector ),将返回什么
warning C4715: 'MyClass::IRChannelData' : not all control paths return a value.
最佳答案
- 返回一个指示成功/失败的
bool
并通过“out”语义参数返回结果 vector 的地址,或者 - 如果在 map 中找不到元素,则抛出异常
关于c++ - 如果没有找到 map 元素会返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8208114/