std::map里insert另一个map报段错误

it2026-06-07  1

某个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()两次的返回值不是一模一样的,可能是两次不同的拷贝。

最新回复(0)