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建议的那样,分配器可能是最好的方法。