35 lines
880 B
C++
35 lines
880 B
C++
/*
|
|
* ContainerUtils.h
|
|
*
|
|
* Created on: 02.02.2013
|
|
* Author: dennis
|
|
*/
|
|
|
|
#ifndef CONTAINERUTILS_H_
|
|
#define CONTAINERUTILS_H_
|
|
|
|
#include <algorithm>
|
|
#include <vector>
|
|
|
|
template<typename T>
|
|
inline void sort_unique_resize(std::vector<T> & 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<typename T>
|
|
inline void sort_unique_resize_shrink_vector(std::vector<T> & vector) {
|
|
sort_unique_resize(vector);
|
|
std::vector<T>().swap(vector);
|
|
}
|
|
|
|
template<typename T>
|
|
inline void remove_consecutive_duplicates_from_vector(std::vector<T> & vector) {
|
|
unsigned number_of_unique_elements = std::unique(vector.begin(), vector.end()) - vector.begin();
|
|
vector.resize(number_of_unique_elements);
|
|
}
|
|
|
|
|
|
#endif /* CONTAINERUTILS_H_ */
|