尝试在C++中基于用户确定的宽度打印钻石 我正在学习我的C++入门期,其中一个复习问题是用嵌套循环来打印一个完整的菱形。用户确定最宽的行有多宽以及钻石是由什么字符制成的。我知道已经有人问过很多类似的问题,但这个问题与我所能找到的任何例子都不同,我不理解这些例子,而且我似乎不能很好地理解菱形的逻辑,以便将其应用于嵌套循环。所以,我想我应该来这里

尝试在C++中基于用户确定的宽度打印钻石 我正在学习我的C++入门期,其中一个复习问题是用嵌套循环来打印一个完整的菱形。用户确定最宽的行有多宽以及钻石是由什么字符制成的。我知道已经有人问过很多类似的问题,但这个问题与我所能找到的任何例子都不同,我不理解这些例子,而且我似乎不能很好地理解菱形的逻辑,以便将其应用于嵌套循环。所以,我想我应该来这里,c++,C++,我和一位导师一起工作,我们得出了以下代码: for (x = 1; x <= width; x += 2) { string wSpace; string charSpace; cout << wSpace.assign(row, '#'); cout << charSpace.assign(x, character) << endl; row--; } 可变宽度是用户输入的大于3的正整数。 此代码生

我和一位导师一起工作,我们得出了以下代码:

    for (x = 1; x <= width; x += 2)
{
    string wSpace;
    string charSpace;

    cout << wSpace.assign(row, '#');
    cout << charSpace.assign(x, character) << endl;

    row--;
}
可变宽度是用户输入的大于3的正整数。 此代码生成菱形的上半部分和最宽的行


这个代码唯一的问题是我不知道发生了什么。他使用了.assign函数,但我不明白我读到的关于它是什么或者它是如何工作的。它是如何运作的,它在做什么?我觉得如果我知道.assign的作用,我会更好地理解这个代码和问题。

根据,您应该使用fill5。正如文档中所述,此版本的assign将当前值替换为n个字符c的连续副本。在本例中,n将是x或row,字符将是character或。在第一个用法中,你说wSpace现在是一个重复行次的字符串,而在第二个例子中,你说charSpace现在是一个重复x次的字符串

什么特别不懂?我已经进入C++学生10个星期了,坦白地说,大部分的页面。在您链接到它之前,我不知道它,但是我不理解我假设的任何示例的符号,这些示例显示了函数采用的参数类型。例如,basic_string&&是什么意思?