C ++ - 使用类中的初始化列表初始化动态集

时间:2018-04-12 20:31:20

标签: c++ objective-c set

我正在尝试使用初始化列表初始化set<string_view>动态类成员。当它不是指向集合的指针时很容易,但在那种情况下我真的不知道如何做到这一点。

class Textpool {
public:
   Textpool() = default;
   Textpool(const std::initializer_list<std::experimental::string_view> &StringList);

   ~Textpool() = default;
private:
   std::set<std::experimental::string_view> *StringSet_;
};

如果它不是指针,那将会是这样的:

Textpool::Textpool(const std::initializer_list<std::experimental::string_view> &StringList) : StringSet_{StringList} {}

1 个答案:

答案 0 :(得分:0)

如果你的成员必须是指针,那么它也必须初始化为指向某个东西。请注意,如果您有指针成员,则默认使用ctor / dtor通常是个坏主意。

但是,假设你处理的是,它不是那么简单(为了清晰起见而添加了空格)

Textpool::Textpool(const std::initializer_list<std::experimental::string_view> &StringList)
  : StringSet_(new std::set<std::experimental::string_view>{StringList})
 {
 }