Здравствуйте, vpchelko, Вы писали:
T>> ортогональные алгоритмы и контейнеры
V>По подробнее, я не знаю таких терминов.
bool hard_predicate(const CNode& left, const CNode& right);
std::vector<CNode> nodelist;
CNode searchFor;
std::vector<CNode>::iterator pnode
pnode = std::find(nodelist.begin(),
nodelist.end(),
searchFor,
hard_predicate);
Некую слабую тень этих возможностей даёт Common Collections API, но это же слёзы. Ковариантные массивы в Java или C# требуют приведения всего к какому-нибудь LCA вида Object или Collection, на чём ортогональность и заканчивается, всё что не Object или Collection идёт лесом.
В любом случае всё это слабоконструктивный оффтоп. Я не ставил целью диспут с джавистами за "у кого лохмаче" -- интернет полон таких диспутов, аргументы сторон, в общем, ясны. Лохмаче у малболга.
Просто: наследование в стандартной библиотеке C++ не комильфо, так что в качестве примера с наследованием vector, list и прочее в лекциях по C++ не подходят совершенно. Возможно в курсе по Java это действительно был бы хороший пример.