编代码时想耍小聪明的时候往往是给自己埋下一个深坑。以下代码是当时心血来潮觉得这样写比较省事儿,结果导致在PC和手机上运行效果不一样。以后遇到类似情况要注意了。
map<int, int> m_rgMount;
......
m_rgMount[nMountIndex] = m_rgMount.size();
在电脑上运行时第一个写入map的元素值为0,而在手机上第一个写入map的元素值为1。推测是PC上先计算的是等号右面,手机上先计算的是等号左面。为了让两个平台运行结果相同,还是乖乖地先计算map大小吧。
int nMountCount = m_rgMount.size();
m_rgMount[nMountIndex] = nMountCount;