码迷,mamicode.com
首页 > 其他好文 > 详细

algorithm之unique

时间:2015-07-16 21:51:43      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

  1. #include <iostream>
  2. #include <algorithm>
  3. using namespace std;
  4. /**< unique函数的算法思想 */
  5. vector<int>::iterator uniqueElements(vector<int>::iterator begPos,vector<int>::iterator endPos)
  6. {
  7. auto currPos = begPos + 1;
  8. while(currPos != endPos)
  9. {
  10. if(*begPos != *currPos)
  11. *(++begPos) = *(currPos++);
  12. else
  13. ++currPos;
  14. }
  15. return begPos+1;
  16. }
  17. int main()
  18. {
  19. vector<int> intVector;
  20. for(int i = 0; i < 20; ++i)
  21. {
  22. intVector.push_back(rand() % 10);
  23. }
  24. for(auto val : intVector)
  25. {
  26. cout << val << " ";
  27. }
  28. cout << endl;
  29. sort(intVector.begin(), intVector.end());
  30. for(auto val : intVector)
  31. {
  32. cout << val << " ";
  33. }
  34. cout << endl;
  35. auto end_unique = unique(intVector.begin(), intVector.end());
  36. /**< 可以查看算法,unique并不是简单的将重复的元素放置到最后面去 */
  37. for(vector<int>::iterator it = intVector.begin(); it != intVector.end(); ++it)
  38. {
  39. if(it == end_unique)
  40. cout << "##";
  41. cout << *it << " ";
  42. }
  43. cout << endl;
  44. intVector.erase(end_unique,intVector.end());
  45. for(auto val:intVector )
  46. cout << val << " ";
  47. cout << endl;
  48. return 0;
  49. }





algorithm之unique

标签:

原文地址:http://www.cnblogs.com/fengkang1008/p/4652236.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!