引用参数

   今天看到引用参数的问题,第二种用法和第三种用法没看懂,第二个例子怎么返回了个什么额外的值?望老师们指教,谢谢。

   什么时候将一个参数指定为引用比较合适呢?像swap()的情况,它必须将一个参数改变成指针来允许改变实参的值时就比较合适。引用参数的第二种普遍用法是向主调函数返回额外的结果。第三种用法是向函数传递大型类对象。我们将更详细地查看后两种情况。

    作为通过引用参数向主调函数返回额外结果的函数的一个例子。我们来定义一个被称为look_up()的函数,它在整型vector中查找一个特定的值,如果找到了该值则look_up()返回一个指向含有该值的vector元素的iterator迭代器,否则,返问一个指向vector最后一个元素下一位置的iterator,表明该值不存在。在多次出现的情况下,指向第一次出现的iterator被返回。此外look_up()用引用参数occurs返回该值出现的次数。


#include<vector>
//引用参数'occurs'可以含有第二个返回值
vector<int>::const_iterator look_up(
const vector<int>&vec,
int value,//值在vector中吗?
int&occurs)//多少次?
{
//res_iter被初始化为最后一个元素的下一位置
vector<int>::const_iterator res_iter=vec.end();
occurs=0;for(vector<int>::const_iterator iter=vec.begin();
iter!=vec.end();
++iter)
if(*iter==value)
{
if(res_iter==vec.end())
res_iter=iter;
++occurs;
}
return res_iter;
}

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值