某个class里:
class xxx {
public:
...
std::map<std::string, LayerInfo_s> GetLayerInfo() { return layers_set_;}
protected:
std::map<std::string, LayerInfo_s> layers_set_;
}
另一个程序:
std::map<std::string, LayerInfo_s> vm_layer_;
vm_layer_.insert(sub_net->GetLayerInfo().begin(), sub_net->GetLayerInfo().end());
报段错误,改为:
std::map<std::string, LayerInfo_s> tmp = sub_net->GetLayerInfo();
vm_layer_.insert(tmp.begin(), tmp.end());
好了。
怀疑:sub_net->GetLayerInfo()两次的返回值不是一模一样的,可能是两次不同的拷贝。