Внутри класса не удаляет дубляжи из вектора целых чисел
В комментарии кода пометил ошибку:
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>
typedef std::vector<int> IntVector;
......................здесь есть функции..............
void UniqueIntVector(IntVector & iv){
std::sort(iv.begin(), iv.end());
iv.erase(unique(iv.begin(), iv.end()), iv.end());
}
class ComparingArray{
std::vector<IntVector> theGeneralVector;
private:
public:
ComparingArray(){};
~ComparingArray(){};
void PushDividers(const std::string str, const char div);
void PopDividers();
int GetMaxGeneralDivider();
bool IsNull() const;
};
void ComparingArray::PushDividers(const std::string str, const char div){
StringVector sv;
IntVector iv;
StringToVector(sv, str, div);
StringVectorToIntVector(iv, sv);
theGeneralVector.push_back(iv);
}
void ComparingArray::PopDividers(){
theGeneralVector.pop_back();
}
int ComparingArray::GetMaxGeneralDivider(){
if (!theGeneralVector.size())
return 0;
for (int i = 0; i < (int)theGeneralVector.size(); i++)
UniqueIntVector(theGeneralVector[i]); // не удаляет дубликаты!!!!!!!
return 0;
}
bool ComparingArray::IsNull() const{
if ((theGeneralVector.size() == 0) || (theGeneralVector.size() == 1))
return true;
else
return false;
}
Извиняюсь, если кому надоел.
Источник: Stack Overflow на русском