怎么定义函数 能传递 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 对象 为参数的主要内容,如果未能解决你的问题,请参考以下文章
设计一个函数,它接受不定数量的参数,这是参数都是函数。这些函数都接受一个回调函数作为参数,按照回调函数被调用的顺序返回函数名