我通过引用返回向量,如下所示,当地图中没有任何项目时我想返回空向量时,它变得有点丑陋。下面给出警告(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_;
答案 0 :(得分:5)
您可以使用静态变量:
th:data-parameter1="${parameter1}" onclick="myFunction(this.getAttribute('data-parameter1'));"
答案 1 :(得分:2)
如果您的方法支持失败选项,则可以引发异常而不是返回空向量。
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;
throw std::exception("Element not found"); // or similar
}