Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
字符串'之间的差异;s的最大大小及其实际容量(以c++; 我想问一个关于C++中字符串的问题。_C++_String - Fatal编程技术网

字符串'之间的差异;s的最大大小及其实际容量(以c++; 我想问一个关于C++中字符串的问题。

字符串'之间的差异;s的最大大小及其实际容量(以c++; 我想问一个关于C++中字符串的问题。,c++,string,C++,String,我写了一些代码来比较从字符串计算出来的后缀和前缀,如下所示 string s; int num = 0; for(int i = 1; i <s.size(); i++) { string prefix = s.substr(0,s.size()-i); string suffix = s.substr(i,s.size()-i); cout <<"prefix : "&

我写了一些代码来比较从字符串计算出来的后缀和前缀,如下所示

 string s;
 int num = 0;

       for(int i = 1; i <s.size(); i++)
        {
            string prefix = s.substr(0,s.size()-i);
            string suffix = s.substr(i,s.size()-i);
            cout <<"prefix : "<<prefix<<" suffix : "<<suffix<<endl;
            if(prefix==suffix){
                num = prefix.size();
                break;
            }
        }
字符串s;
int num=0;

对于(int i=1;i您的输入方法是什么?您的编译器肯定没有提醒您有关您输入的任何信息。请尝试更准确地说明发生了什么。如果必要,请使用屏幕截图。其次,在任何现代通用计算机上,1MB是一个非常小的字符串。它不大,更不用说非常大。它大约是例如,我正在写的笔记本电脑中的RAM。关于你的问题#2,你的算法有二次时间。要了解这一点,我建议你找出原因。在你理解了为什么它有二次时间后,将其简化为线性应该不难。比较字符串两端的字符应该不容易,l指向字符串的中心并在找到两个不同的字符时将其打断?您的输入方法是什么?您的编译器肯定没有提醒您有关输入的任何信息。请尝试更准确地描述发生的情况。如果必要,请使用屏幕截图。其次,在任何现代通用计算机上,1MB是一个非常小的字符串。它不是大,更不用说非常大。例如,它大约是我正在写的笔记本电脑内存的万分之一。关于你的问题#2,你的算法有二次时间。要了解这一点,我建议你找出原因。在你理解了为什么它有二次时间后,应该不难将其简化为线性。be比较字符串两端的字符更容易,循环到字符串的中心,如果发现两个不同的字符则中断?