int main () {
vector <int> vectorF;
functionX <vector<int>&, long> (vectorF, 1L);
}
template <typename dataTypeA,
typename dataTypeB> dataTypeB functionX (dataTypeA argA,
dataTypeB argB)
{
}
如果在函数定义中修改了此代码,则会更改向量中的实际值。
通过复制传递矢量的方法是什么?
答案 0 :(得分:4)
只需将该功能称为
即可functionX (vectorF, 1L); // ok! explicit function calling isn't needed
然而,作为一个方面,我不想提一下,为一个函数制作一个整体vector
的副本没有多大意义。您只需将函数定义更改为,
template <typename dataTypeA, typename dataTypeB>
dataTypeB functionX (const dataTypeA& argA, dataTypeB argB)
{ ^^^^^^^^^^^^^^^^^ const reference
}
如果您使用此vector
进行阅读。
答案 1 :(得分:1)
functionX <vector<int>, long> (vectorF, 1L);
在&
之后添加vector<int>
会使dataTypeA
成为对向量的引用。如果要复制到矢量,请删除&amp;