class StrVec
{
private:
    /* data */
    static std::allocator<std::string> alloc;
    std::string *elements;
    std::string *frist_free;
    std::string *cap;
    void reallocate();
    void free();
    std::pair<std::string *, std::string *> alloc_n_copy(const std::string *, const std::string *);
    void chk_n_alloc()
    {