我有以下代码获取并打印字符串.
#include<iostream>
#include<conio.h>
#include<string>
using namespace std;
int main()
{
string str;
cout << "Enter a string: ";
getline(cin, str);
cout << str;
getch();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是如何使用strlen()函数计算此字符串中的字符数?
我总是std::string通过size()成员函数检索一个长度.说实话,我从来不知道有length()会员功能.好吧,我刚才知道有.所以我想知道两者之间是否存在任何差异,并且在可能出现否定答案的情况下,为什么会有两个成员函数完全相同?
length()返回字符串中的字符数并size()返回一个size_t也是相同但用于使其与其他STL容器一致的字符数.
对于计算length(),字符串遍历所有字符并计算长度.所以,O(n)时间.
是否size()也一样呢?
或者可以及时直接计算变量的大小O(1)?
所以,我的问题是,它们在速度方面是否相同(如计算它们的方式)还是在O(1)时间上计算尺寸?