C++ 泛型算法unique 和unique_copy :删除相邻的重复元素
2015-11-05 22:36
627 查看
std::unique
C++
Algorithm library
Defined in header <algorithm> | ||
template< class ForwardIt > ForwardIt unique( ForwardIt first, ForwardIt last ); | (1) | |
template< class ForwardIt, class BinaryPredicate > ForwardIt unique( ForwardIt first, ForwardIt last, BinaryPredicate p ); | (2) | |
[first, last)and returns a past-the-end iterator for the new
logical end of the range.
eg.
int main(int argc, char* argv[])
{
list<int> ivec1;
for(list<int>::size_type i = 0; i<10 ; ++i)
{
ivec1.push_back(i);
}
ivec1.push_back(9);
cout<<"original content:"<<endl;
for(list<int>::iterator i = ivec1.begin() ; i != ivec1.end() ; ++i)
{
cout<<*i<<endl;
}
vector<int> ivec;
unique_copy(ivec1.begin(),ivec1.end(),back_inserter(ivec));
cout<<"after unique_copy:"<<endl;
for(vector<int>::iterator i = ivec.begin() ; i != ivec.end() ; ++i)
{
cout<<*i<<endl;
}
list<int>::iterator t = unique(ivec1.begin(),ivec1.end());
cout<<"after unique:"<<endl;
for(list<int>::iterator i = ivec1.begin() ; i != t ; ++i)
{
cout<<*i<<endl;
}
return 0;
}
当list 中元素是0,1,2,3,4,5,6,7,8,9,9时后面的输出都是0,1,2,3,4,5,6,7,8,9;
但是当list 中元素是0,1,2,3,4,5,6,7,8,9,5后面的输出都是0,1,2,3,4,5,6,7,8,9,5
结论
======================================
unique 和其copy版本都只能"删除"相邻的重复元素
相关文章推荐
- gcc编译器
- C++primer第五版第五章学习笔记
- c语言中递归函数真的好吗?
- windows提取程序权限函数
- C_C++_Java Java利用JNI调用C的函数
- CEF3开发者系列之JS与C++交互之一
- 开始学习C语言
- 1014 C语言文法定义与C程序的推导过程 程序:冒泡算法C程序(语法树)
- const关键词
- 朱老师嵌入式课程学习总结和感言
- _MSC_VER详细介绍
- 冒泡排序
- 小记 cin/get/getline
- C++读写文件保存至容器list中
- 排序算法(一):直接插入排序
- C语言可变参数的原理
- C++中的虚函数及其实现方式
- C++中引用和指针的联系和区别
- [C++11]二叉树前序、中序和后序遍历2(非递归)
- C++ print tuple