2013-10-01 46 views
0

在下面的函数中,我想以不明确的方式放置cos数组的100x100值(如数组cos [])。在调用函数时声明向量并声明我

void processing(std::vector<std::array<double, 100 >> & cos, int & index) 
{ 
.... 
} 

如何为矢量做到这一点?

+0

你是什么意思?你能尽可能多地填写代码,并给出程序的输入输出示例吗?你卡在哪里? –

+0

该函数的一个输出是100 x 100双精度值的向量。但我不想在开始时指定数值(100X100)。我的问题:如何不在声明中指定该号码? – MelMed

+0

'vector >&cos' –

回答

1

使用模板:

template <typename T> 
void processing(std::vector<T> & cos, int & index) 
{ 
.... 
} 

编辑看到评论后。如果你想只接受任何大小的std::array, 使用非类型模板参数:

template <std::size_t N> 
void processing(std::vector<std::array<double, N>> & cos, int & index) 
{ 

} 
+0

谢谢你了!但模板的使用会忽略值的数量以及矢量的类型吗?我可以使用两个模板吗? – MelMed

+0

@MelMed:'std :: vector'和'std :: array'都有一个名为'size()'的成员函数,它会给你容器中元素的个数。看到我的更新,它显示了我认为你正在寻找的东西。 –

+0

+1祝你有+2!非常感谢 – MelMed