我试图理解字符串声明的行

时间:2016-10-06 23:08:24

标签: c++

string Possible::str(int width) const {
    string s(width, ' '); // <-- this line
    int k = 0;
    for (int i = 1; i <= 9; i++) {
        if (is_on(i)) s[k++] = '0' + i;
    }
    return s;
}

这是什么意思? string s(w​​idth,'');

3 个答案:

答案 0 :(得分:3)

这意味着(空格)字符将重复(宽度)次。

因此,例如,如果width为5,则此行的输出将为5个空格。

查看有关使用std::string构造函数的this示例。

答案 1 :(得分:3)

它是std::string constructors之一,用于构建重复字符串。

答案 2 :(得分:1)

该行声明定义类型为s的对象string,并将(width, ' ')指定为初始化程序用于那个新对象。此初始化程序将生成相应的string构造函数,并调用两个参数。该构造函数将初始化对象s

如果string实际上是std::string,那么这将调用string::string(size_t n, char c)构造函数。它将使用一个长度为s的字符串初始化width,该字符串完全由空格字符组成。

相关问题