c++ - 循环错误的有符号和无符号整数表达式之间的比较
问题描述
我正在编写一个通过字符串的程序,但在 for 循环中它给了我一个错误,我发现网上的答案只使用了向量。
std::string str = "Test";
for (int i = 0, max = str.size; i < max; i++)
解决方案
std::string::size
是一个成员函数,你需要调用它:
for (int i = 0, max = str.size(); i < max; i++)
// ^^ here
...并且为了解决有符号-无符号转换的问题:
for (std::size_t i = 0, max = str.size(); i < max; i++)
// ^^^^^^^^^^^ index type for standard library container
此外,如果您需要处理char
字符串中的每个,请考虑使用基于范围的 for 循环;
for (char c : str)
// ...
推荐阅读
- flutter - 无法在flutter web中使用输入字段
- html - 即使调整窗口大小,如何在图像顶部保持 div(文本框)的相同位置?
- php - 我想单独检索所有用户和他们的属性,所以我可以用它们来显示在一个整洁的列表中
- java - NumberFormatException 不工作 java
- node.js - 来自 SES 无服务器框架的访问被拒绝错误
- python - 如何使用 Azure AD 对我的 python Web 应用程序的使用进行身份验证和授权?
- java - Jedis - 缺少简单程序的 HostPort 类
- php - 将图像添加到带有表单域的 PDF
- c# - 在一页布局中动态创建 3 个不同的表格
- angular-material - 使用 Angular Material 项目的富文本策略