Vetor genérico de vetores em C ++
Existe uma boa maneira de o C ++ implementar (ou falsificar) um tipo para um vetor genérico de vetores?
Ignore a questão de quando um vetor de vetores é uma boa ideia (a menos que exista algo equivalente que seja sempre melhor). Suponha que ele modele com precisão o problema e que uma matriz não modele com precisão o problema. Suponha também que funções modeladas que tomem essas coisas como parâmetros precisem manipular a estrutura (por exemplo, chamando push_back), para que não possam simplesmente aceitar um tipo genérico suportado[][]
.
O que eu quero fazer é:
template<typename T>
typedef vector< vector<T> > vecvec;
vecvec<int> intSequences;
vecvec<string> stringSequences;
mas é claro que isso não é possível, já que typedef não pode ser modelado.
#define vecvec(T) vector< vector<T> >
está próximo e pouparia duplicar o tipo em todas as funções modeladas que operam nos vecvecs, mas não seriam populares na maioria dos programadores de C ++.