通过引用返回空向量

Red*_*Fox 2 c++ dictionary vector c++11

我正在通过引用返回一个向量,如下所示,当我想在地图中没有项目时返回空向量时,它会变得有点难看.以下给出了warning(returning address of local variable)并修复它,我有另一个私有成员变量vector<ClassA> empty_,我可以返回它以避免这种情况.

我想知道是否有优雅的方式来实现这一点.

const std::vector<ClassA>& GeVector(const std::string& class_id) {
auto iter = class_map_.find(class_id);
if (iter != class_map_.end())
    return iter->second;
return {}; // return empty_;
}

private:
std::unordered_map<std::string, std::vector<ClassA>> class_map_;
vector<ClassA> empty_;
Run Code Online (Sandbox Code Playgroud)

eer*_*ika 6

您可以使用静态变量:

static const std::vector<ClassA> empty;
return empty;
Run Code Online (Sandbox Code Playgroud)