我有一个包含多个变量的结构来考虑唯一性。假设结构如下。
struct Object
{
// uniqueness considers with following 3 variables
int Var1;
std::string Var2;
std::string Var3;
// few more variables, not important
struct ObjectCompare
{
bool operator()(const Object* lhs, const Object* rhs) const {
return std::tie(lhs->Var1, lhs->Var2, lhs->Var3) < std::tie(rhs->Var1, rhs->Var2, rhs->Var3);
}
};
要求:
目前使用如下数据结构的集合,我觉得这不是最优化的。
std::vector<Object*> vec_WithDuplicates; // preserve insertion order
std::set<Object*, Object::ObjectCompare> set_ToFindExistence;
// Inserted into vec_WithoutDuplicates if not exists in the set_ToFindExistence set.
std::vector<Object*> vec_WithoutDuplicates; // preserve insertion order
我的问题是我需要将哪些数据结构/结构集用于大多数优化和清洁的解决方案?