符号和未签名整数表达式之间的比较,以进行循环误差

Comparison between signed and unsigned integer expression for loop error

本文关键字:比较 误差 循环 之间 表达式 整数 符号      更新时间:2023-10-16

我正在编写一个通过字符串的程序,但在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 (char c : str)
   // ...