【问题标题】:Inserting into a string c++插入字符串 C++
【发布时间】:2013-02-10 10:23:29
【问题描述】:

如果我想在用户输入的字符串中多次插入相同的字符 例如:

int n=30;
string s="";
for(int i=0; i<n; i++) {
    s=s+"M";
}

有没有更有效的方法可以在更短的时间内完成相同的流程?因为如果 n 是一个很大的数字,程序将需要很长时间才能运行

【问题讨论】:

    标签: c++ string insert stdstring


    【解决方案1】:

    根据:http://www.cplusplus.com/reference/string/string/append/ 案例 n°5:填充字符串

    str.append (14, 'd');
    

    将在你的字符串中追加 14 倍的字符 'd'

    【讨论】:

    • 我正要写同样的东西。荣誉:)
    • 这仍然是线性计数。
    • 太好了,谢谢 :)
    【解决方案2】:

    不确定它是否更快,但肯定是更好的风格:

    s += std::string('M', n);
    

    【讨论】:

      【解决方案3】:

      答案很可能是不,没有更有效的方法。大多数操作实际上在计数上是线性的。包括构造一个替代字符串,使用std::string::append 甚至std::fill 附加到它。一个可能加快速度的好方法是使用s.push_back('M') 并可能进行预留调用,但即便如此,它也不会明显更快,如果有的话。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-12
        • 1970-01-01
        • 2017-12-15
        • 1970-01-01
        • 1970-01-01
        • 2011-10-19
        • 2015-10-14
        • 1970-01-01
        相关资源
        最近更新 更多