RattleInGlasses / ps_oop

0 stars 0 forks source link

Замечания по реализации CMySet #18

Open alexey-malov opened 8 years ago

alexey-malov commented 8 years ago
class CMySet
{
public:
    ...
    void Add(T const &value);
    ...
    T operator [](size_t index)const;
public:
    std::vector<T> m_data;
};

Данные должны быть приватными Add лучше переименовать в Insert и раз уж используется доступ по индексу, то вернуть индекс вставленного элемента Оператор [] должен возвращать константную ссылку на значение, чтобы избежать копирования и возможности дублирования элементов

alexey-malov commented 8 years ago

Для вычисления случайных чисел лучше ознакомиться с возможностями STL, <random> тебе в помощь. Для просвещения смотреть https://channel9.msdn.com/Events/GoingNative/2013/rand-Considered-Harmful и вообще видосы с Going Native 2013 https://channel9.msdn.com/Events/GoingNative/2013/Inheritance-Is-The-Base-Class-of-Evil https://channel9.msdn.com/Events/GoingNative/2013?sort=viewed&direction=asc#tab_sortBy_viewed Выступления с C++ Russia 2015 http://www.youtube.com/playlist?list=PLrs_DcVZNww22J_uDSJn7bLNOlly7n8p2

alexey-malov commented 8 years ago

При вставке значение из initializer_list, не обеспечивается уникальность значений. Проверить в тестах