如何将向量传递给函数
How can I pass a vector to a function?
所以,我在这里要做的是在调用函数之前将向量传递给函数而不创建向量。这只是我实际想要的简化模型,所以这似乎有点没有必要,但请耐心等待:)
#include <iostream>
#include <vector>
using namespace std;
void function(vector<int> intVector)
{
for (int i = 0 ; i < intVector.size(); i++)
cout << intVector[i] << endl;
}
int main(int argc, char *argv[])
{
function(vector<int> = {10,12,13}); //does not work :(
system("PAUSE");
return EXIT_SUCCESS;
}
此代码无法编译
function(vector<int> = {10,12,13});
我想知道我需要做些什么才能让它工作。谢谢!
添加:问题是我试图将我的向量传递给子构造函数的初始值设定项列表中的父类构造函数,并且制作一个 vector 的副本只是为了稍后传递它很麻烦。
像这样调用function
:
function({10,12,13});
这将使用 vector
的 std::initializer_list
构造函数来构造参数。请注意,您接受按值vector
,这可能会导致副本。您可能希望使用:
void function(const std::vector<int>& v) {}
作为您的签名,如果您不修改参数。
如果您的编译器不支持initializer_list
功能(Visual Studio或clang
/gcc
上缺少-std=c++11
开关),则需要创建一个临时并手动初始化它。
std::vector<int> v;
v.push_back(10); v.push_back(12); v.push_back(13);
function(v);
试试这个
// Create vector
std::vector<int> vi{ 10, 12, 13};
// Pass vector to function
function( vi );
// Receive vector parameter at function
// Option 1: If you want to modify the passed vector
void function( std::vector<int> & vp );
// Option 2: if you do not want to modify the passed vector
void function( std::vector<int> const & vp );
正如其他人所说:
1/使用function(const std::vector<int>& intVector)
作为函数签名。
2/使用 main() 中的 function( {10,12,13} );
调用它。
3/在启用标准::initializer_list支持的情况下编译:g++ -std=c++0x filename.C
试一试。
相关文章:
- 函数向量_指针有不同的原型,我可以构建一个吗
- 如何使用向量的template_back函数
- 如何通过派生类函数更改基类中的向量
- 变量没有改变?通过向量的函数调用
- 一对向量构造函数:初始值设定项列表与显式构造
- 在c++中使用向量时,如何调用构造函数和析构函数
- std::sort()函数无法对向量的一部分进行排序
- 如何在C++向量中奇数元素前面加上值-1,我在使用insert函数时遇到了问题
- C++中函数的向量返回类型引发错误
- 添加存储在向量中的大整数的函数出现问题
- 如何在 c++ 中定义接受不同参数类型的函数向量?
- 具有 lambda 函数的函数向量
- 你能用参数制作函数向量吗?
- 在C++中使用成员函数向量时,有没有办法实现协变返回类型
- 在编写 lambda 函数向量时出现隔离错误
- 如何在 boost.process 间共享内存中使用复杂结构"push_back"函数向量
- 是否将std矢量重新分配到默认的构造函数向量是擦除的好方法
- 运行提升for_each中的成员函数向量
- 创建和回推函数向量
- C++,指向函数向量的指针的STL映射