SashaOcheev / OOP

0 stars 0 forks source link

Замечани по CMyList #10

Open alexey-malov opened 7 years ago

alexey-malov commented 7 years ago
    template<typename U>
    class CListIterator : public std::iterator <std::bidirectional_iterator_tag, U>
alexey-malov commented 7 years ago
        bool m_isReverse = b false;

странный код

alexey-malov commented 7 years ago
alexey-malov commented 7 years ago
    void PushBack(const T & data)
    {
        auto newNode = std::make_unique<SNode>(data, m_lastNode, nullptr);
        SNode *newLastNode = newNode.get();
        if (m_lastNode)
        {
            m_lastNode->next = std::move(newNode);
        }
        else
        {
            m_firstNode = std::move(newNode);
        }
        m_lastNode = newLastNode;
        m_lastNode->next = nullptr;
        ++m_size;
    }
alexey-malov commented 7 years ago
            it.get()->prev = std::move(node.get());
alexey-malov commented 7 years ago
        if (it == begin())
        {
            it.get()->next.get()->prev = nullptr;
            m_firstNode = move(it.get()->next);
        }
        else if (it.get()->data == GetBackElement())
        {
            it.get()->prev->next = nullptr;
            m_lastNode = std::move(it.get()->prev);
        }
        else
        {
            it.get()->next->prev = std::move(it.get()->prev);
            it.get()->prev->next = std::move(it.get()->next);
        }
alexey-malov commented 7 years ago
        if (m_size > 0)
        {
            m_size--;
        }