zoukankan      html  css  js  c++  java
  • 使用引用形参返回额外信息

    一个函数只能返回一个值,但是呢,有时候函数需要同时返回多个值,引用形参为我们一次返回多个结果提供了有效的途径:

    来一个例子,直接上代码:

    先说明函数功能:一个函数,返回string对象中的某个字符第一次出现的位置,同时得知该字符总共在string对象中出现的次数,函数中有详细说明。

    #include<iostream>
    #include<string>
    using namespace std;
    
    string::size_type FindChar(const string &s, char c, string::size_type &count)
    {
    	auto ret = s.size();  //字符串总长,来控制循环,同时初始化初始化ret
    	count = 0;
    	for (decltype(ret) i = 0; i != s.size(); ++i)  //decltype获取ret的类型
    	{
    		if (s[i] == c)
    		{
    			if (ret == s.size())  //巧妙使用ret == s.size() 去控制字符C第一次出现,以后都不在统计
    				ret = i;
    			++count;   //上边if只是第一次进去一次,之后都不在进 以后遇到C都只加count
    		}
    	}
    	return ret;
    }
    
    void Test()
    {
    	string s1("lilililililililililili");
    	
    	string::size_type Count = 0;;
    	auto index = FindChar(s1,'l',Count);
    	cout << "第一次出现的位置:" << index << endl;
    	cout << "Count = " << Count << endl;
    }
    
    int main()
    {
    	Test();
    	return 0;
    }
    表面看似只完成一个任务:即返回了string对象中某个字符出现的第一个位置,但是由于我们用来统计次数的变量时一个引用形参,在函数外可以直接访问,引用形参不会因为出函数作用域而消失;


    来自:C++Primer;


  • 相关阅读:
    学习进度条 第十五周
    学习进度条 第十四周
    买书问题
    第二冲刺阶段 工作总结 10
    第二冲刺阶段 工作总结09
    05构建之法阅读笔记之五
    第二阶段工作总结 08
    React 浅析
    React 开发规范
    React 组件的生命周期
  • 原文地址:https://www.cnblogs.com/melons/p/5791861.html
Copyright © 2011-2022 走看看