c++题目,输入一些单词,当出现相同单词的时候将这个单词输出,请问我写的错哪儿了?

#include
#include
using std::cin;
using std::cout;
using std::vector;
using std::string;
using std::endl;
int main ()
{
vector x;
string i;
auto a = x.begin();
auto b = x.end();
while (cin>>i)
{
x.push_back(i);
while (a!=x.end())
{
if (*a == i)
break;
a++;
}
if (a != x.end()+1)
break;
}
cout<<i<<endl;
return 0;
}

 #include <iostream>
#include <string>
#include <vector>
using namespace std;

int main()
{
    vector<string> x;
    string i;
    while (cin>>i)
    {
        vector<string>::iterator a;
        for (a = x.begin();a!=x.end();a++)
        {
            if (*a == i) 
            {
                cout<<i<<endl;
                return 0;
            }
        }
        x.push_back(i);
    }
    return 0;
}