Come posso convertire std :: vector in std :: tuple? HoC++: converte il vettore in tupla
class T { };
int cnt = 3;
vector<T*> tv;
for (int i = 0; i < cnt; ++i) {
tv.push_back(new T());
}
voglio ottenere
auto tp = std::tie(*tv[0], *tv[1], *tv[2]);
Come posso ottenere questo tp? Se cnt è abbastanza grande, non posso scrivere questo tp manualmente.
std::vector<
ConvConnection<
decltype(inputLayer),
decltype(*C1[0]),
decltype(*Conn1Opt[0]),
RandomInitialization<arma::mat>,
arma::mat
>* > Conn1(6);
for (size_t i = 0; i < 6; ++i) {
Conn1.push_back(new ConvConnection<
decltype(inputLayer),
decltype(*C1[0]),
decltype(*Conn1Opt[0]),
RandomInitialization<arma::mat>,
arma::mat
>(inputLayer, *C1[i], *Conn1Opt[i], 5, 5));
}
Questo è il codice. Ecco solo 6, ma ho anche bisogno di un vettore con una dimensione superiore a 100. Ho bisogno di convertire questo vettore in una tupla.
Se è troppo grande o ingombrante da scrivere manualmente, scrivere un altro programma che lo genera. Se si desidera determinare la dimensione della tupla in fase di esecuzione, non è possibile. – molbdnilo
Perché hai bisogno di una tupla? Non funzionerebbe 'std :: array'? –
dasblinkenlight
Un nitpick off-topic: dovresti avere nomi di variabili/classi migliori. Non c'è motivo per cui 'cnt' non possa essere scritto come' count'. Cos'è un 'ConvConnection'? 'Conn1Opt'? Nel 2015, i tuoi file sorgente rimarranno ancora sul tuo disco rigido con alcuni caratteri in più, e altri sviluppatori che guarderanno il tuo codice ti ringrazieranno più tardi :) – Julian