#include <set>
#include <functional>
class C
{
public:
C(const std::string& address) :
mAddress(address)
{};
virtual const std::string& Address() const
{
return mAddress;
};
private:
std::string mAddress;
};
class SetC :public std::set<C*, std::function<bool(const C*, const C*)>>
{
};
Подскажите где прописать код лямбда функции сравнения, например, такой:
[](const C* pC1, const C* pC2) {return pC1->Address() < pC2->Address(); }
В конструкторе:
using Comp = std::function<bool(const C*, const C*)>;
SetC()
: std::set<C*, Comp>(
Comp([](const C* pC1, const C* pC2) {
return pC1->Address() < pC2->Address();
}))
{}
При этом вообще STL-контейнеры не очень хорошо переносят хранение указателей (кто-то должен отдельно за этими указателями следить; для векторов явственно нарушается locality и т.п.). Плюс виртуальный метод, возвращающий ссылку на строку тоже выглядит таинственно и необычно.
У меня есть трёхмерный массив с вот таким объявлением:
Дословно вопрос звучит так "Define the constructor for class Z"Помогите разобраться что именно надо реализовать? Ну тип конструктор у класса Z уже есть, чего...
Не могу никак разобраться с интерфейсами и их реализациейОбьясните пожалуйста как их правильно реализовывать и как это хотя-бы примерно...