怎么定义函数 能传递 vector 对象 为参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么定义函数 能传递 vector 对象 为参数相关的知识,希望对你有一定的参考价值。

可以直接传递vector类型的参数:

//---------------------------------------------------------------------------
#include <iostream>
#include <vector>

using namespace std;
void cv(vector<int> a)

vector<int>::iterator itp=a.begin();

while (itp!=a.end() )
cout<<*itp++<<endl;


int main(void)


vector<int> b;
b.push_back(6);
b.push_back(5);
b.push_back(7);
cv(b);
return 0;

//---------------------------------------------------------------------------

也可以传递迭代器(推荐这种用法):

//---------------------------------------------------------------------------
#include <iostream>
#include <vector>

using namespace std;
void cv(vector<int>::iterator begin,vector<int>::iterator end)


while (begin!=end )
cout<<*begin++<<endl;


int main(void)


vector<int> b;
b.push_back(6);
b.push_back(5);
b.push_back(7);
cv(b.begin(),b.end() );
return 0;

//---------------------------------------------------------------------------
参考技术A 可以直接传递vector类型的参数:
//---------------------------------------------------------------------------
#include
<iostream>
#include
<vector>
using
namespace
std;
void
cv(vector<int>
a)

vector<int>::iterator
itp=a.begin();
while
(itp!=a.end()
)
cout<<*itp++<<endl;

int
main(void)

vector<int>
b;
b.push_back(6);
b.push_back(5);
b.push_back(7);
cv(b);
return
0;

//---------------------------------------------------------------------------
也可以传递迭代器(推荐这种用法):
//---------------------------------------------------------------------------
#include
<iostream>
#include
<vector>
using
namespace
std;
void
cv(vector<int>::iterator
begin,vector<int>::iterator
end)

while
(begin!=end
)
cout<<*begin++<<endl;

int
main(void)

vector<int>
b;
b.push_back(6);
b.push_back(5);
b.push_back(7);
cv(b.begin(),b.end()
);
return
0;

//---------------------------------------------------------------------------
参考技术B void abc(vector <string> &VecStr)
可以这样定义,这举的是string型,可以用你想用的long ,int等等,vector做参数一般用的都是引用。
参考技术C 小坦克举的例子不错.
但是有时候在有的编译器下无法通过编译.
这时你需要将vector定义为宏.如下:
typedef vector <int> v_int
typedef v_int::iterator v_iIter
这样以来,在传参时用宏替代其本身,就可以通过编译了.

以上是关于怎么定义函数 能传递 vector 对象 为参数的主要内容,如果未能解决你的问题,请参考以下文章

python类中可以建立任意多参数吗?

动态数组进阶

按值或 C++11 通用参考传递函子? [复制]

给定传递给它的参数类型,如何确定函数参数的类型?

设计一个函数,它接受不定数量的参数,这是参数都是函数。这些函数都接受一个回调函数作为参数,按照回调函数被调用的顺序返回函数名

python中怎么设定函数形参的类型