可以在C中的标准地图容器中使用引用作为值吗?
如果不是 – 为什么不呢?
如果不是 – 为什么不呢?
示例声明
map<int,SomeStruct&> map_num_to_struct;
使用示例
... SomeStruct* some_struct = new SomeStruct(); map_num_to_struct[3] = *some_struct; map_num_to_struct[3].some_field = 14.3; cout<<some_struct.some_field; ...
我会期待看到14.3印刷…
解决方法
不需要STL容器值类型可分配.参考文献不可转让. (您不能为其分配不同的对象以供参考.)