ยง Coordinate compression with set and vector

If we have a std::set that represents our set of uncompressed values, we can quickly compress it with a std::vector and lower_bound without having to create an std::map that holds the index!
set<int> ss; // input set to compress
vector<int> index(ss.begin(), ss.end()); 
int uncompressed = ...; // 
int compressed = int(lower_bound(index.begin(), index.end(), key) - index.begin());
assert(xs[compressed] == uncompressed);