青瓦梦滋 2025-02-13 19:41 采纳率: 66.7%
浏览 21
已结题

C++中string类的扩容

我用的vs code,g++编译器

string s1("Hello World1123456");
cout << s1.capacity() << " " << s1.size() << endl;

capacity在g++里不应该是2倍2倍的长吗,为什么只要是超了15的字符串capacity和size都一个样

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2025-02-13 20:04
    关注

    以下回复引自免费微信小程序:皆我百晓生。 如问题解决,还请采纳。如仍有疑问,请回复留言或私信博主,以便获得更精准的帮助。

    在C++中,CAPACITY()方法用于获取字符串对象的可容纳的最大字符数。如果一个字符串对象已满,那么它的容量会增加,并且CAPACITY()方法将返回这个新的最大容量。你可以通过以下方式实现:

    #INCLUDE <IOSTREAM>
    #INCLUDE <CSTRING>
    
    INT MAIN() {
        CHAR STR[] = "HELLO WORLD1123456";
        INT CAPACITY = STRLEN(STR);
    
        STD::COUT << "STRING'S CAPACITY: " << CAPACITY << STD::ENDL;
    
        RETURN 0;
    }
    

    在这个例子中,我们创建了一个字符串STR,并使用STRLEN函数计算出其长度。然后,我们调用CAPACITY来获取字符串的容量。最后,我们打印出这个容量值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 2月22日
  • 已采纳回答 2月14日
  • 创建了问题 2月13日