【发布时间】:2020-10-01 11:55:49
【问题描述】:
我最近遇到了这段代码。 谁能解释一下。
string generateTheString(int n) {
return "b" + string(n - 1, 'a' + n % 2);
}
string(n - 1, 'a' + n % 2) 在这里是什么意思?
【问题讨论】:
-
查看字符串her的构造函数
我最近遇到了这段代码。 谁能解释一下。
string generateTheString(int n) {
return "b" + string(n - 1, 'a' + n % 2);
}
string(n - 1, 'a' + n % 2) 在这里是什么意思?
【问题讨论】:
string(n - 1, 'a' + n % 2);
正在调用string constructor(特别是#2)。
您的字符串将被实例化为 n - 1 字符 'a' + n % 2 的实例。
然后将其与"b" 连接。
例如,如果 n 为 5,您将获得 'a' + 5 % 2 => 'a' + 1 => 'b' 中的 n - 1 => 4,然后添加另一个 b。所以你最终会得到"bbbbb"。
【讨论】:
'a' + 1 是 'b'。我所知道的每个字符编码都是如此,但编写此类代码的人需要考虑它可能不可移植。