如何删除一个vector<CSttring>中重复的数据
2个回答
展开全部
两种方法:排序和不排序的方法
① 代码:
#include <vector>
#include <algorithm>
#include <atlstr.h>
#include <iostream>
#include <iterator>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
vector<CString> v;
v.push_back("ABC");
v.push_back("abc");
v.push_back("ABC");
v.push_back("123");
v.push_back("456");
v.push_back("123");
// 1. sorted - 排序
//sort(v.begin(), v.end());
//v.erase(unique(v.begin(), v.end()), v.end());
// 2. non-sorted - 非排序
for (vector<CString>::iterator it = v.begin(); it != v.end(); ++it)
v.erase(remove(it + 1, v.end(), *it), v.end());
// print out - 输出
for (vector<CString>::const_iterator it = v.begin(); it != v.end(); ++it)
wcout << (LPCTSTR)((CString)(*it)) << endl;
return 0;
}
② 运行:
ABC
abc
123
456
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询