c++ 引用 &

更新中

394. 字符串解码 - 力扣(LeetCode)

形参不会改变原来的值,只会在函数调用的时候交换两个数的值,但不会改变内存里的值。
但是引用参数就会改变。可以理解为为该变量取了一个别名。

比如下文中recur递归函数中的引用参数pos,在多数的递归当中,需要让会变更的索引为引用,否则会出错,多说无益,这里建议大家自己试一下

class Solution {
public:
string recur(string s, int& pos) { //如果不用&会出错,原因是下文++时需要修改pos位置
		string ans = "";  
		int reptime = 0;  //记录数字
		while (pos < s.size()) {
			char ch = s[pos];
			if (isalpha(ch))  
				ans += ch;
			else if (isdigit(ch)) 
				reptime = reptime * 10 + (ch - '0');//考虑数字部分可能>=10
			else if (ch == '[') {  
				string sub = recur(s, ++pos); //这个++会使ans+完之后,pos不包含】,而是是下一段子数组开始的地方
				while (reptime--) 
					ans += sub;
		

你可能感兴趣的:(算法,c++,开发语言)