用类指针替换STL List容器

时间:2011-03-04 09:17:41

标签: c++ list stl wrapper

通过以下实施,我试图回答my question

class wlist
{
private:
    std::list<void*> m_list;

public:

    unsigned int size () { return m_list.size(); }
    bool empty () { return m_list.empty(); }
    void pop_back () { m_list.pop_back(); }
    void pop_front () { m_list.pop_front(); }
};

class qwertyWrap : public wlist
{
public:
    int getNumber() { ptr->getNumber(); }
    void setNumber(int x) { ptr->setNumber(x); }

private:
    qwerty* ptr;
};

class qwerty
{
public:
    int getNumber();
    void setNumber(int x);
};


class asdf
{
public:
    int getElement();
    void setElement(int x);
private:
    /* Question */
    /* Can the following declaration be substituted by qwertyWrap keyboard ??? */
    list<qwerty*> keyboard; or qwertyWrap keyboard;
};

问题: 我可以用“qwertyWrap键盘”代替类asdf中的“list keyboard”,并实现与STL列表相同的功能????

2 个答案:

答案 0 :(得分:0)

没有。 A list needs more。这个链接只是一个指针。为了绝对肯定,你必须参考官方标准。

答案 1 :(得分:0)

回答我的初步问题: / *问题 / / 可以用qwertyWrap键盘替换以下声明??? * / 列表键盘;或qwertyWrap键盘;

qwertyWrap键盘可以替代列表键盘并仍然保持std :: list功能。我已经在某个时候实现了这个解决方案。