C++ 如何通过复制和引用将向量传递给函数? int main(){ 向量向量; 函数x(矢量f,1L); } 模板dataTypeB functionX(dataTypeA argA, 数据类型(argB) { }

C++ 如何通过复制和引用将向量传递给函数? int main(){ 向量向量; 函数x(矢量f,1L); } 模板dataTypeB functionX(dataTypeA argA, 数据类型(argB) { },c++,templates,vector,C++,Templates,Vector,如果在函数定义中修改,此代码将更改向量中的实际值 通过拷贝传递向量的方法是什么?functionX(vectorF,1L) 在向量之后添加和将使数据类型a成为向量的引用。如果要复制到向量,请删除&函数X(向量,1L) 在向量之后添加和将使数据类型a成为向量的引用。如果要复制到向量,请删除&只需将函数调用为 int main () { vector <int> vectorF; functionX <vector<int>&

如果在函数定义中修改,此代码将更改向量中的实际值

通过拷贝传递向量的方法是什么?

functionX(vectorF,1L)

向量
之后添加
将使
数据类型a
成为向量的引用。如果要复制到向量,请删除&

函数X(向量,1L)


向量
之后添加
将使
数据类型a
成为向量的引用。如果要复制到向量,请删除&

只需将函数调用为

    int main () {
       vector <int> vectorF;
       functionX <vector<int>&, long> (vectorF, 1L);
    }

    template <typename dataTypeA, 
              typename dataTypeB> dataTypeB functionX (dataTypeA argA, 
                                                       dataTypeB argB)
    {   
    }
然而,作为一个侧面,我想提到的是,仅仅为一个函数复制一个完整的
向量
,没有多大意义。只需将函数定义更改为

functionX (vectorF, 1L);  // ok! explicit function calling isn't needed
模板
dataTypeB functionX(常量dataTypeA和argA,dataTypeB argB)
{^^^^^^^^^^^^^^^^^^^^^常量引用
}

如果您使用此
向量
进行读取。

只需将函数调用为

    int main () {
       vector <int> vectorF;
       functionX <vector<int>&, long> (vectorF, 1L);
    }

    template <typename dataTypeA, 
              typename dataTypeB> dataTypeB functionX (dataTypeA argA, 
                                                       dataTypeB argB)
    {   
    }
然而,作为一个侧面,我想提到的是,仅仅为一个函数复制一个完整的
向量
,没有多大意义。只需将函数定义更改为

functionX (vectorF, 1L);  // ok! explicit function calling isn't needed
模板
dataTypeB functionX(常量dataTypeA和argA,dataTypeB argB)
{^^^^^^^^^^^^^^^^^^^^^常量引用
}

如果你是为了阅读而使用这个
向量的话。

我真傻,竟然不去想那件简单的事。这个问题值得投否决票谢谢你的及时回复。如果答案回答了你的问题,你能接受吗?谢谢:)是的,我不需要这些提醒,我等了6分钟才过去,因为在此之前我无法接受答案。:)提到
您并不是在真正利用
模板
设施。:)是的,类型推断确实是一个简洁的特性,应该在这种情况下使用。我同意你的看法,我真是太傻了,竟然不去想那件简单的事。这个问题值得投否决票谢谢你的及时回复。如果答案回答了你的问题,你能接受吗?谢谢:)是的,我不需要这些提醒,我等了6分钟才过去,因为在此之前我无法接受答案。:)提到
您并不是在真正利用
模板
设施。:)是的,类型推断确实是一个简洁的特性,应该在这种情况下使用。我同意你的观点@iammilindYeah,我意识到,唉,太晚了。@Anisha,确保你真的需要制作一份
向量的副本。因为,我很少看到这样的用法。我知道这没有道理,但我只是想知道怎么做。:)那么在哪种情况下应该使用
?嗯,这对vector没有意义,但这是语言中的一个特性,因为它适用于任何类,可能有一些类的副本是有意义的。是的,我意识到,唉,太晚了。@Anisha,确保你真的需要复制
vector
。因为,我很少看到这样的用法。我知道这没有道理,但我只是想知道怎么做。:)那么在哪种情况下应该使用
?嗯,它对vector没有意义,但它是语言中的一个特性,因为它适用于任何类,并且可能有一个副本对某些类有意义。