C++ 如何创建std::string包装器,使创建包装器实例的类中的ptr到std::string和ptr到特殊类函数保持一致?

C++ 如何创建std::string包装器,使创建包装器实例的类中的ptr到std::string和ptr到特殊类函数保持一致?,c++,windows,visual-studio-2010,boost,heap,C++,Windows,Visual Studio 2010,Boost,Heap,我有课。它有一个函数void delete_ptr(void*)和无效推送到(std::set**pps)。我有10个这个类的实例。每一个都在difrent堆上分配。我在主堆中有我的程序,我的映射也在主堆中。我想调用我的每一个类实例push_进入,并从main调用我的map。每个push_-into将调用(**pps).insert(std::string(“Hello-str”)或(**pps)。插入(“Hello char”)。如何创建这样的my_string类,将**std::string

我有课。它有一个函数
void delete_ptr(void*)
无效推送到(std::set**pps)。我有10个这个类的实例。每一个都在difrent堆上分配。我在主堆中有我的程序,我的映射也在主堆中。我想调用我的每一个类实例
push_进入
,并从main调用我的map。每个push_-into将调用
(**pps).insert(std::string(“Hello-str”)
(**pps)。插入(“Hello char”)。如何创建这样的
my_string
类,将
**std::string
保存在其中,以及
ptr
删除创建
my_string
类实例的类

我想知道的主要目标是:

  • 如何创建其构造函数,使其保留指向字符串的指针并删除创建它的实例的\u ptr

您可以与一起使用
boost::shared\u ptr
。使用
boost::bind

提供您的
delete\u ptr
作为自定义的deallocator,您可能想看看分配器。该方法与您描述的方法不同,但更具可扩展性。是否可以使my_字符串至少尝试让ptr删除其创建者的ptr?是否需要
delete_ptr
删除
my_字符串
<代码>共享\u ptr
将为您处理此问题。只需将
boost::shared_ptr
存储在
集合中,为它们提供自定义比较器,并在构建时提供指向
delete_ptr
的指针。如果你需要一个例子,请发表评论,我明天会发布,现在我需要回家了。我的主要目的是对一些API用户隐藏,他向set…@myWallJSON发送了一个字符串以外的东西…@myWallJSON:在这种情况下,正如Dietmar建议的那样,分配器可能是最好的方法。