unique_copy复制出来的跟copy的结果怎么是一样的?
结果输出:1 2 3 4 100 5 100
也就是说这个函数没有做到把不重复的元素复制到指定的容器中(这个程序结果是在vs2005中通过)
我又把这个程序移到vc6上运行,结果是内存不足,运行出错。
求解释!!!
#include <algorithm>
#include <vector>
#include <iostream>
#include <list>
//#include <string>
using namespace std;
int main()
{
int ia[] = {1, 2, 3, 4, 100, 5, 100};
list<int> iList(ia, ia + 7);
vector<int> iVect;
//将iList中不重复的元素复制到空的iVect中
unique_copy(iList.begin(), iList.end(), back_inserter(iVect));
cout << "Vector:";
for (vector<int>::const_iterator it = iVect.begin(); it != iVect.end(); ++it)
{
cout << *it << " ";
}
cout << endl;
return 0;
}
[解决办法]
因为你没有认真看unique_copy的使用条件。
[解决办法]
连续且重复的,才会略掉。