C++;堆栈溢出是什么导致的? 我是C++新手,写了以下的内容: class Solution { public: vector<string> fizzBuzz(int n) { vector<string> result(n); for (int i=1;i<=n;++i) { if (i%3==0 and i%5==0) result[i-1]="FizzBuzz"; else if (i%3==0) result[i-1]="Fizz"; else if (i%5==0) result[i-1]="Buzz"; else result[i-1]=""+i; } return result; } }; 类解决方案{ 公众: 矢量嘶嘶声(整数n){ 向量结果(n); 对于(int i=1;i

C++;堆栈溢出是什么导致的? 我是C++新手,写了以下的内容: class Solution { public: vector<string> fizzBuzz(int n) { vector<string> result(n); for (int i=1;i<=n;++i) { if (i%3==0 and i%5==0) result[i-1]="FizzBuzz"; else if (i%3==0) result[i-1]="Fizz"; else if (i%5==0) result[i-1]="Buzz"; else result[i-1]=""+i; } return result; } }; 类解决方案{ 公众: 矢量嘶嘶声(整数n){ 向量结果(n); 对于(int i=1;i,c++,string,vector,C++,String,Vector,表达式,“+i不会将i中的整数值转换为字符串。相反,它与和((”“)[i])相同。也就是说,它是指向字符串”的第i个值的指针。这超出了范围,因为空字符串在索引0处只有一个元素(字符串终止符) 改用: 想一想它对“+i”意味着什么,其中i是一个int。想一想后,看一看?这回答了你的问题吗?这不是“堆栈”溢出。谢谢,根据你的经验,哪种方法更快?使用%还是因为输入继续使用计数器(直到3和5)? result[i-1]=std::to_string(i);

表达式,
“+i
不会将
i
中的整数值转换为字符串。相反,它与
和((”“)[i])
相同。也就是说,它是指向字符串
的第i个值的指针。这超出了范围,因为空字符串在索引
0
处只有一个元素(字符串终止符)

改用:


想一想它对“+i”意味着什么,其中i是一个int。想一想后,看一看?这回答了你的问题吗?这不是“堆栈”溢出。谢谢,根据你的经验,哪种方法更快?使用%还是因为输入继续使用计数器(直到3和5)?
result[i-1]=std::to_string(i);