C++ primer 课后练习的一路题(它给的答案不能实现)

C++ primer 课后练习的一道题(它给的答案不能实现)
怎么效果啊,还是把重复的元素复制到vector对象ivec中了
求帮助,谢谢!
#include <iostream>
#include <vector>
#include <algorithm>
#include <list>
using namespace std;
int main()
{
int ia[]={1,2,3,4,100,5,100};
  list<int> ilst(ia,ia+7);
vector<int> ivec;
unique_copy(ilst.begin(),ilst.end(),back_inserter(ivec));
cout<<"vector:"<<endl;
for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();++iter)
cout<<*iter<<" ";
cout<<endl;
//system("pause");
return 0;
}

------解决方案--------------------
unique_copy只能排除相邻的重复元素。
把ia[]改成{1,2,3,4,100,100,100}试试
------解决方案--------------------
list<int> ilst(ia,ia+7);

是这里的问题。。这里定义的链表长度!!