pair<bool, char> pos_panlindrome(unordered_map<char, int>& smap){
for(auto m : smap){
m.second /= 2;
}
}
我在另一个调用pos_panlindrome的函数中声明了smap。我希望所有映射值(尽管键值)都减半。但不知何故,当我在pos_panlindrome函数后打印出smap时,没有一个mapped_value发生变化。如何通过unordered_map迭代,但不能更改其映射值?
为什么是这种情况?
你忘在for循环'为(自动米:SMAP)参考=>为(自动&M:SMAP)' – NathanOliver
在'自动米:smap','M'是一个复制。如果要将更改应用于原件,则需要参考。 'auto&m:smap' – user4581301