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

 我来答
匿名用户
2008-09-24
展开全部
可以直接传递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;
}
//---------------------------------------------------------------------------
操洲钱修文
2019-07-16 · TA获得超过3969个赞
知道大有可为答主
回答量:3045
采纳率:29%
帮助的人:207万
展开全部
可以直接传递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;
}
//---------------------------------------------------------------------------
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
滩怒海07
2008-09-24 · TA获得超过210个赞
知道小有建树答主
回答量:237
采纳率:0%
帮助的人:0
展开全部
void abc(vector <string> &VecStr)
可以这样定义,这举的是string型,可以用你想用的long ,int等等,vector做参数一般用的都是引用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
铿_锵_鸟
2008-09-27
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
小坦克举的例子不错.
但是有时候在有的编译器下无法通过编译.
这时你需要将vector定义为宏.如下:
typedef vector <int> v_int
typedef v_int::iterator v_iIter
这样以来,在传参时用宏替代其本身,就可以通过编译了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式