Now using unordered_map instead of map
Inlined exception constructor and destructor
Used copy_if C++11 algorithm to simplify two methods
Refactored using copy_if
Extracted out the filtering vectors logic into a template and simplified some code with it