C++ c++;使用类函数对象设置为类成员变量

C++ c++;使用类函数对象设置为类成员变量,c++,set,functor,C++,Set,Functor,我需要设置为类成员变量,但也需要它的比较函数对象使用类的属性 class Example { int _member1; set<string, MyCmp> _myNameSet; class MyCmp { Example& myEx; MyCmp( const Example& ex) { myEx = ex; } bool operator() (const str

我需要设置为类成员变量,但也需要它的比较函数对象使用类的属性

class Example
{
   int _member1;
   set<string, MyCmp> _myNameSet;

   class MyCmp
   {
      Example& myEx;

      MyCmp( const Example& ex) {
         myEx = ex;
      }

      bool operator() (const string& lhs, const string& rhs)
      {
         /// Use "_member1" here ...

         myEx._member1;

         /// Do something ....
      }
   }
};
类示例
{
国际成员1;
set_myNameSet;
类MyCmp
{
示例&myEx;
MyCmp(常量示例和示例){
myEx=ex;
}
布尔运算符()(常量字符串和lhs、常量字符串和rhs)
{
///在此处使用“\u member1”。。。
myEx._成员1;
///做点什么。。。。
}
}
};
所以这里我的问题是,如何将示例对象作为参数传递给MyCmp构造函数?因为“_myNameSet”是一个成员变量

如果不是成员变量,我知道有一种方法:

void Example::functionBlah()
{
   MyCmp obj(&(*this));
   set<String, MyCmp> myLocalSet(obj);
}
void示例::functionBlah()
{
MyCmp obj(&(*本));
设置myLocalSet(obj);
}

您可以在构造函数中使用初始值设定项列表:

class Example
{
public:
    Example() : _member1(0), _myNameSet(this) {}

    Example(const Example&) = delete;
    Example& operator = (const Example&) = delete;

    // Other stuff
private:
   int _member1;
   set<string, MyCmp> _myNameSet;
};
类示例
{
公众:
示例():_member1(0),_myNameSet(this){}
示例(const-Example&)=删除;
示例&运算符=(常量示例&)=删除;
//其他东西
私人:
国际成员1;
set_myNameSet;
};

你想与此构造共谋什么?看起来不对。