У меня есть шаблон векторов с их геттерами:
vector<A>& getA() const { return a; }
vector<B>& getB() const { return b; }
vector<C>& getC() const { return c; }
...
Меня интересует какая-то функция типа vector<T>& getByName(string s) const
, чтобы я мог вызывать функцию следующим образом: getByName("A")
, getByName("B")
и т. Д.
Я пытался использовать неупорядоченную карту, но я не нашел подходящего способа создать линию, подобную этой: unordered_map< string, vector<T> >
.
A, B, C ... - это совершенно разные структуры, поэтому решение полиморфизма c - это не то, что я ищу, насколько это возможно.
Поскольку vector<T>
- это контейнер с фиксированный размер (24 байта, если я не ошибаюсь), я не понимаю, почему карта не может хранить эти байты где-то в памяти независимо от типа вектора.