C++ 使用引用形参返回额外信息

C++ 使用引用形参返回额外信息,第1张

一个函数只能返回一个值,但有时候函数需要返回多个值,这时我们可以返回一个数组或vector,可以参考博客 C++ 函数返回二维数组和二维vector容器 vector<vector<int>> 当然如果返回的值的数量比较少,也可以采用引用形参的方法。


使用引用形参时,尽管函数还是只返回一个值,但引用传值导致被引用的实参也发生了改变。


将我们想要获得的值作为被引用传值的实参,这样就可以获得额外信息。


代码示例如下,我们想要让函数 find_char() 即返回查询字符串中特定字符的第一次索引位置,又返回该特定字符出现的次数。


那就可以使函数返回索引位置,给函数添加一个额外的引用实参,用于存储出现的次数。


#include 
#include 
using namespace std;


//返回s中c第一次出现的位置索引
//引用形参occurs负责统计c出现的总次数
int find_char(const string s, const char c, int& occurs)
{
    auto ret = s.size();
    occurs = 0;     //出现次数

    //decltype(expression)仅仅“查询”表达式的类型,并不会对表达式进行“求值”。


即不能打印 decltype(expression) for (decltype(ret) i = 0; i != s.size(); i++){ if (s[i] == c) { if (ret == s.size()) ret = i; //记录c第一次出现的位置,只有刚开始时ret = s.size(),后面ret < s.size() occurs++; } } return ret; } int main() { int num; //特定字符出现的次数 string s = "abcdcbacc"; const int result = find_char(s, 'c', num); cout << "字符'c'第一次出现的位置索引为:" << result << endl; cout << "字符'c'出现的次数为:" << num << endl; return 0; }

输出:

字符'c'第一次出现的位置索引为:2
字符'c'出现的次数为:4

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/578327.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)

保存