unique_copy复制有关问题

unique_copy复制问题
#include <iostream>
#include <vector>
#include <list>
#include <string>
#include <algorithm>
#include <iterator>
#include <numeric>
using namespace std;
typedef list<int>::iterator pv;

void put(const vector<int>& vec)
{
  vector<int>::const_iterator it = vec.begin();
  vector<int>::const_iterator itend = vec.end();
  while (it != itend)
  {
  cout << *it << " " ;
  it++;
  }
  cout << endl;
}


int main()
{
  vector<int> vec,vv;
  int word;
  list<int> lst;
  while (cin >> word)
  {
  lst.push_back(word);

  }
  pv it = lst.begin();
  pv itend = lst.end();

  unique_copy(it,itend,back_inserter(vv));
  //将lst中不重复的对象复制到vv中,但是为什么结果还有重复值呢,输入1 2 3 4 1 2 3 4 put(vv);
  return 0;
}


------解决方案--------------------
因为你没看函数详细说明就看了名字就猜功能。
买本《STL源码剖析》吧
------解决方案--------------------
C/C++ code
template <class InputIterator, class OutputIterator>
  OutputIterator unique_copy ( InputIterator first, InputIterator last,
                               OutputIterator result )
{
  *result=*first;
  while (++first != last)
  {
    if (!(*result == *first))  // or: if (!pred(*result,*first)) for the pred version
      *(++result)=*first;
  }
  return ++result;
}

------解决方案--------------------
探讨
C/C++ code
template <class InputIterator, class OutputIterator>
OutputIterator unique_copy ( InputIterator first, InputIterator last,
OutputIterator result )
{
……