程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> erase與unique結合用於徹底刪除重復元素

erase與unique結合用於徹底刪除重復元素

編輯:C++入門知識

STL中的unique只能把重復的元素全部放到容器末端,並不能真正把重復元素刪除. 這裡使用unique 和 erase 則可達到徹底刪除效果

示例代碼如下:

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;

void print(string temp)
{
	cout<<temp<<endl;
}

int main()
{
	vector<string> test;
	vector<string>::iterator pos;
	string temp;

	  for (int i=0; i<6;++i)
	  {
		  cin>>temp;
		  test.push_back(temp);
	  }

	  cout<<"請輸入";
	  cin>>temp;
	  pos=remove(test.begin(),test.end(),temp);//僅僅把temp值賦空並且放到最後一位 沒有徹底刪除
	  // remove返回最後一個未被移除元素的下一位置 
	  test.erase(pos,test.end());  //刪除pos到test.end()的所有元素
	  for_each(test.begin(),test.end(),print);
	  //若然test是list<string> 則直接 test.remove(temp)即可完成徹底刪除
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved