如何将std :: vector转换为std :: tuple? 我C++:将向量转换为元组
class T { };
int cnt = 3;
vector<T*> tv;
for (int i = 0; i < cnt; ++i) {
tv.push_back(new T());
}
我想
auto tp = std::tie(*tv[0], *tv[1], *tv[2]);
我怎样才能得到这个TP? 如果cnt足够大,我不能手动编写此tp。
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));
}
这是代码。这里只是6,但我也需要一些大小超过100的向量。我需要将这个向量转换为元组。
如果手动写入过大或过于繁琐,请编写另一个生成它的程序。如果你想在运行时确定元组的大小,你不能。 – molbdnilo 2015-02-09 13:24:36
为什么你需要一个元组?不会'std :: array'工作? –
dasblinkenlight
2015-02-09 13:26:59
一个无题nitpick:你应该有更好的变量/类名称。没有理由'cnt'不能写成'count'。什么是ConvConnection? 'Conn1Opt'?在2015年,你的源文件仍然适合你的硬盘驱动器,其中有一些额外的字符,其他开发人员看你的代码后会感谢你:) – Julian 2015-02-09 16:04:30