相关疑难解决方法(0)

使用operator!= as作为运算符<在std :: set中是否安全?

我有一个带有一些成员的结构,我有一个实现的运算符==.在operator ==的帮助下实现运算符是否安全?我想在一个集合中使用这个结构,我想检查这个结构是否是唯一的.

struct Data
{
  std::string str1;
  std::string str2;
  std::string str3;
  std::string str4;

  bool operator==(const Data& rhs)
  {
    if (str1 == rhs.str1
     && str2 == rhs.str2
     && str3 == rhs.str3
     && str4 == rhs.str4
       )
      return true;
    else
      return false;
  }

  // Is this ok??
  bool operator<(const Data& rhs)
  {
    return !this->operator==(rhs);
  }
}
Run Code Online (Sandbox Code Playgroud)

所以当我将这个结构插入到std :: set时会发生什么?

c++ algorithm set

2
推荐指数
2
解决办法
259
查看次数

标签 统计

algorithm ×1

c++ ×1

set ×1