我不明白为什么当我已经添加了中断循环的 if 语句时它会超出范围?
std::vector m_eachTextLine; std::string 文本 = "
for (size_t pos = 0; pos < text.length(); pos+=60)
{[&] {
if (pos + 60 >= text.length())
{
unsigned temp = text.length() - pos;
m_eachTextLine.push_back(text.substr(pos, temp));
return;
}
m_eachTextLine.push_back(text.substr(pos,60));
}();
}
for (int i = 0; i <= m_eachTextLine.size(); i++)
{
std::cout << m_eachTextLine.at(i) << std::endl;
}
返回0;}
超出范围的异常是循环最后一次迭代的结果:
for (int i = 0; i <= m_eachTextLine.size(); i++)
{
std::cout << m_eachTextLine.at(i) << std::endl;
}
更改<=
为<
,你会没事的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句