C++引用形参,函数返回多个值
之前编代码有遇到过想让一个函数返回多个值的情况,low low的我不知道有什么办法,直接使用的全局变量将函数里的值传出去。
今天看书,《C++primer》第五版中文版第189页:使用引用形参返回额外信息。
直接上书上的例子:
//返回s中c第一次出现的位置索引 //引用形参occurs负责统计c出现的总次数 string::size_type find_char(const string &s,char c,string::size_type &occurs) { auto ret = s.size(); occurs = 0; for(decltype(ret) i= 0; i != s.size() ;++i){ if(s[i]) ==c){ if(ret == s.size() ) ret = i; ++occurs; } } return ret;//出现次数通过occurs隐式地返回 }
调用该函数时,必须传入三个实参:作为查找范围的一个string对象,要找的字符以及一个用于保存字符出现次数的size_type对象。
调用方法:auto index = find_char(s,'o',ctr);
其中s是一个string对象,ctr是一个size_type对象。