20080119

C++: Using sort/unique STL generic algorithms with STL vectors etc containers.

Έστω ότι έχω ένα διάνυσμα με τιμές μέσα σε ένα 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")

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

eggs.in.art (my non-technical blog)