繁体   English   中英

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

[英]C++ - Initializing dynamic set with an initializer list in a class

我正在尝试使用初始化列表初始化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} {}

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

但是,假设您处理了这个问题,是不是像(为清楚起见添加了空格)那么简单

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

?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM