问题:输出只出现过一次的数
#include
#include
#include
using namespace std;
class Solution {
public:
void singleNumber();
private:
string nums;
map <int,int>m;
};
void Solution::singleNumber()
{
getline(cin,nums);
for(int i=0;isize();i++)
{
if(nums[i]!=' ')
m[nums[i]]++;
}
for (map<int, int>::iterator it = m.begin(); it != m.end(); it++)
{
if(it->second==1)
cout<first<int main()
{
Solution N;
N.singleNumber();
return 0;
}
输入:1 2 2
实际输出:49 目标输出:1
输入:1 1 4 3 3
实际输出:52 目标输出: 4
将输出部分代码改为:
cout<first-48<
进行上述更改后可达到目标结果,但不知道原因
希望能够解释上述情况出现原因
m[nums[i]]++;
没有初始值就++,是有问题的
没有初使化结果不可控。 这种gdb或者vC调试下循环是否有很多次 看下变情况