История изменений
Исправление AntonI, (текущая версия) :
Присвоение со ссылкой и не будет работать, потому что ссылку инициализируют во время создания, по другому синтаксис не позволит. М.б. emplace и поможет, но в любом случае оно выглядит криво по сравнению с std::map<int, AnyS*>
.
А вообще ЯННП зачем такие сложности. Возникает смутное ощущение что можно как то сильно проще, но нужна вменяемая формулировка задачи;-)
ЗЫ если три контейнера с пойнтерами разобранными по типам, то вот так гораздо более прямо:
std::vector<AnyS> input;
std::vector<AnyS*> type0, type1, type2;
// или даже так
std::vector<int> type0, type1, type2;
std::vector::push_back работает несоизмеримо быстрее чем добавление в std::map, map оправдан только если индексы разрежены и нужен поиск по индексу. Да и обход вектора работает быстрее.
Исправление AntonI, :
Присвоение со ссылкой и не будет работать, потому что ссылку инициализируют во время создания, по другому синтаксис не позволит. М.б. emplace и поможет, но в любом случае оно выглядит криво по сравнению с std::map<int, AnyS*>
.
А вообще ЯННП зачем такие сложности. Возникает смутное ощущение что можно как то сильно проще, но нужна вменяемая формулировка задачи;-)
ЗЫ если три контейнера с пойнтерами разобранными по типам, то вот так гораздо более прямо:
std::vector<AnyS> input;
std::vector<AnyS*> type0, type1, type2;
// или даже так
std::vector<int> type0, type1, type2;
std::vector::push_back работает несоизмеримо быстрее чем добавление в std::map, map оправдан только если индексы разрежены и нужен посих по индексу. Да и обход вектора работает быстрее.
Исправление AntonI, :
Присвоение со ссылкой и не будет работать, потому что ссылку инициализируют во время создания, по другому синтаксис не позволит. М.б. emplace и поможет, но в любом случае оно выглядит криво по сравнению с std::map<int, AnyS*>
.
А вообще ЯННП зачем такие сложности. Возникает смутное ощущение что можно как то сильно проще, но нужна вменяемая формулировка задачи;-)
ЗЫ если три контейнера с пойнтерами разобранными по типам, то вот так гораздо более прямо:
std::vector<AnyS> input;
std::vector<AnyS*> type0, type1, type2;
std::vector::push_back работает несоизмеримо быстрее чем добавление в std::map, map оправдан только если индексы разрежены и нужен посих по индексу. Да и обход вектора работает быстрее.
Исправление AntonI, :
Присвоение со ссылкой и не будет работать, потому что ссылку инициализируют во время создания, по другому синтаксис не позволит. М.б. emplace и поможет, но в любом случае оно выглядит криво по сравнению с std::map<int, AnyS*>
.
А вообще ЯННП зачем такие сложности. Возникает смутное ощущение что можно как то сильно проще, но нужна вменяемая формулировка задачи;-)
ЗЫ если три контейнера с пойнтерами разобранными по типам, то вот так гораздо более прямо:
std::vector<AnyS> input;
std::vector<AnyS*> type0, type1, type2;
std::vector::push_back работает несоизмеримо быстрее чем добавление в std::map, map оправдан только если индексы разрежены и нужен посих по индексу.
Исправление AntonI, :
Присвоение со ссылкой и не будет работать, потому что ссылку инициализируют во время создания, по другому синтаксис не позволит. М.б. emplace и поможет, но в любом случае оно выглядит криво по сравнению с std::map<int, AnyS*>
.
А вообще ЯННП зачем такие сложности. Возникает смутное ощущение что можно как то сильно проще, но нужна вменяемая формулировка задачи;-)
Исходная версия AntonI, :
Присвоение со ссылкой и не будет работать, потому что ссылку инициализируют во время создания, по другому синтаксис не позволит. М.б. emplace и поможет, но в любом случае оно выглядит криво по сравнению с std::map<int, AnyS*>
.
А вообще ЯННП не понял зачем такие сложности. Возникает смутное ощущение что можно как то сильно проще, но нужна вменяемая формулировка задачи;-)