昨天碰到一个奇葩的问题。
我定义的数据结构
然后我用priorityqueue< tree>载入进去。但是这个类的top()函数出来的东西是const类型的。会出现这种问题
所以这里涉及到了const转为非const的问题。
一个毁三观的代码是这样的
把const直接强转没了。但是这样虽然编译通过但是在实际中随意丢弃const会有问题。当如果本身的变量不是const类型。后期加上了const,也就是我这种情况来说这样转换没有问题。而对于本身就是const变量的话如果这么转换会有未定义的效果出现。我做了一个实验,结果三观都没了。
看见了没?一个地址有两个值。。。估计是编译器有啥优化吧。。反正c语言是古老的魔法,你可以天马星空,但是死也快。。