我的实现使用std :: map来存储数据.当我开始我的代码时,它似乎是最好的选择.现在我来到了必须更改地图内所有对象的键值的位置.
问题是每个对象都指向地图中的另一个对象:
class AND : public node{
vector <node*> inputs;
vector <node*> outputs;
}
Run Code Online (Sandbox Code Playgroud)
并且地图声明如下:
map<unsigned int, AND> all_ANDs;
Run Code Online (Sandbox Code Playgroud)
我的问题是:如果我使用来自C++ 17的map :: extract修改all_ANDs映射中的键值,我的指针(例如属性输入中的那些)是否会指向正确的位置?
换句话说:如果我用extract改变"first"元素的值,"second"的地址将保持不变?
我从这个链接中注意到字符串"papaya"保持不变(并且优雅地工作).但我想确定一下指针.