Здравствуйте, emergen, Вы писали:
E>я так понял что std::tuple плох тем что нельзя явно (статически) задать значения и размер массива
E>т.е. нельзя написать std::tuple<int, MyObject(), 3 > = { (1, .. ), (3, .. ), (3, .. )}
Можно, но не так:
std::tuple<int, MyObject> array[] = { {1, MyObject()}, {2, MyObject()}, {3, MyObject()} };
инициализация делается фигурными скобками, короче.
Но если у тебя предыдущая задача и уже есть массив объектов (или указателей на) MyObject, и тебе нужно их просто пересчитать, то проще пересчитать напрямую, а не городить еще один массив со счетчиками.
В С++, в отличие от управляемых языков типа Питона (в которых, к тому же, в основном ссылки-указатели летают), стараются лишних объектов не плодить.