#include <string>
#include <map>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
//建構函式對象,指定pair 比較的規則
bool mod_equal(std::pair<const std::string,std::string> &p1,
std::pair<const std::string,std::string> &p2 )
{
return p1.first == p2.first;
}
//去處 multimap 裡面重複資料的方法
int main(int argc,char *argv[])
{
std::multimap<std::string,std::string> val;
val.insert(make_pair("aaaa","abc"));
val.insert(make_pair("aaaa","cccc"));
val.insert(make_pair("vvv","fsdf"));
val.insert(make_pair("vvv","ggggg"));
val.insert(make_pair("aaaa","cdddsa"));
val.insert(make_pair("bbb","cdddsa"));
std::multimap<std::string,std::string>::iterator it;
it = val.begin();
for(it = val.begin(); it != val.end();++it)
{
std::cout<<it->first<<" " <<it->second<<endl;
}
std::cout<<endl;
std::vector<std::pair<std::string,std::string> > val_a;
//採用std::back_inserter 是因為需要插入到對應的vector,不能直接用val_a.begin,因為需要賦值
std::unique_copy(val.begin(),val.end(),std::back_inserter(val_a),mod_equal);
for(size_t i = 0; i < val_a.size();++i)
{
std::cout<<val_a[i].first<<" "<<val_a[i].second<<endl;
}
system("pause");
}