Find your present! map

题目链接

Problem Description

In the new year party, everybody will get a "special present".Now it's your turn to get your special present, a lot of presents now putting on the desk, and only one of them will be yours.Each present has a card number on it, and your present's card number will be the one that different from all the others.For example, there are 5 present, and their card numbers are 1, 2, 3, 2, 1.so your present will be the one with the card number of 3, because 3 is the number that different from all the others.

Input

The input file will consist of several cases. 
Each case will be presented by an integer n (1<=n<=200, and n is odd) at first. Following that, n positive integers will be given in a line. These numbers indicate the card numbers of the presents.n = 0 ends the input.

Output

For each case, output an integer in a line, which is the card number of your present.

Sample Input

5
1 1 3 2 2
3
1 2 1
0

Sample Output

3
2

题意

找出一系列数字中出现次数只有一次的那个数

代码

#include<bits/stdc++.h>
using namespace std;
#define inf 0x3f3f3f3f
int main()
{

    int n;
    while (scanf("%d", &n), n)
    {
        map<string, int>m;//map<char*,int >m,这样定义不行,
                         //因为(char*)是一个地址 而地址没有发生变化.就没有办法统计不同数值出现的次数
        for (int i = 0; i < n; i++)
        {
            char ch[100];
            string ch1;
            scanf(" %s", &ch);
            ch1 = ch;
            m[ch1]++;
        }
        map<char *, int>::iterator it;
        for (it = m.begin(); it != m.end(); it++)
        {
            if (it->second == 1)//if(*it==1)会报错,说是没有==这个操作符
              				//m[ch]=1  那么it->second=1;  it->first=ch;
            {
                cout << it->first << endl;
                break;
            }
        }
    }

    return 0;

}
原文地址:https://www.cnblogs.com/dccmmtop/p/6708216.html