练习13.40 :为你的StrVec类添加一个构造函数,它接受一个initializer_list<string>参数
【出题思路】
本题练习设计列表初始化。
【解答】
通过begin和end获得列表的整个范围,利用辅助函数alloc_n_copy分配足够多的空间,并将范围中的元素拷贝过去即可:
inline StrVec::StrVec(std::initializer_list<std::string> il) { //调用alloc_n_copy分配与列表il中元素数目一样多的空间 auto newdata = alloc_n_copy(il.begin(), il.end()); elements = newdata.first; first_free = cap = newdata.second; }
本页共17段,632个字符,859 Byte(字节)