有效地向字符串附加或插入可变数量的空格

Dav*_*vid 0 c++ string insert append

我有一个简单的程序,可以插入或附加一些空格来对齐文本。

f()
{
    string word = “This word”;
    const string space = “ “;
    int space_num = 5; // this number can vary 
    for (int i = 0; i < space_num; i++)
        {
            word.insert(0, space);
        }   
    cout << word;
}
Run Code Online (Sandbox Code Playgroud)

现在这有效,但我想知道是否有更有效的方法来做到这一点。不是在优化我的程序方面,而是在标准实践中。

我可以想象两种潜在的方法:

1 - 有没有办法创建一个 20 个空格的字符串,并附加这些空格的一部分,而不是重复添加一个空格。

2 – 有没有办法用可变数量的空格创建字符串并附加它?

chr*_*ris 5

是的,两者都需要一些副本和一个角色:

word.insert(0, space_num, ' ');
word.append(space_num, ' ');
Run Code Online (Sandbox Code Playgroud)

对于对齐文本,请记住您可以使用字符串流和<iomanip>标题,例如std::setw