История изменений
Исправление
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*>.
А вообще ЯННП не понял зачем такие сложности. Возникает смутное ощущение что можно как то сильно проще, но нужна вменяемая формулировка задачи;-)