Έστω ότι έχω ένα διάνυσμα με τιμές μέσα σε ένα vector και θέλω αυτές να τις ταξινομήσω αλλά και να σβήσω όσες τιμές τους είναι παραπάνω από δύο φορές. Χρησιμοποιώ τα generic STL algorithms: sort/unique:
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
//.....
vector<string> vec_str;
vec_str.push_back("a");
vec_str.push_back("a");
vec_str.push_back("e");
vec_str.push_back("b");
vec_str.push_back("b");
vec_str.push_back("d");
// vec_str = ("a","a","e","b","b","d")
sort(vec_str.begin(),vec_str.end());
// vec_str = ("a","a","b","b","d","e")
vector<string>::iterator vec_str_iter;
vec_str_iter=unique(vec_str.begin(),vec_str.end());
// vec_str = ("a","b","d","e","d","e")
// \-- vec_str_iter
vec_str.erase(vec_str_iter,vec_str.end());
// vec_str = ("a","b","d","e")

Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου