1340359

练习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(字节)