diff --git a/Util/ContainerUtils.h b/Util/ContainerUtils.h new file mode 100644 index 000000000..215e9885c --- /dev/null +++ b/Util/ContainerUtils.h @@ -0,0 +1,34 @@ +/* + * ContainerUtils.h + * + * Created on: 02.02.2013 + * Author: dennis + */ + +#ifndef CONTAINERUTILS_H_ +#define CONTAINERUTILS_H_ + +#include +#include + +template +inline void sort_unique_resize(std::vector & vector) { + std::sort(vector.begin(), vector.end()); + unsigned number_of_unique_elements = std::unique(vector.begin(), vector.end()) - vector.begin(); + vector.resize(number_of_unique_elements); +} + +template +inline void sort_unique_resize_shrink_vector(std::vector & vector) { + sort_unique_resize(vector); + std::vector().swap(vector); +} + +template +inline void remove_consecutive_duplicates_from_vector(std::vector & vector) { + unsigned number_of_unique_elements = std::unique(vector.begin(), vector.end()) - vector.begin(); + vector.resize(number_of_unique_elements); +} + + +#endif /* CONTAINERUTILS_H_ */