有符号和无符号整数表达式之间的循环错误比较

-2 c++ string

我正在编写一个通过字符串的程序,但在for循环中,它给了我一个错误,并且在线发现的答案仅使用向量。

std::string str = "Test";
for (int i = 0, max = str.size; i < max; i++) 
Run Code Online (Sandbox Code Playgroud)

lub*_*bgr 8

std::string::size 是成员函数,您需要调用它:

for (int i = 0, max = str.size(); i < max; i++)
//                            ^^ here
Run Code Online (Sandbox Code Playgroud)

...并为了使有符号-无符号转换的问题消失:

for (std::size_t i = 0, max = str.size(); i < max; i++)
//   ^^^^^^^^^^^ index type for standard library container
Run Code Online (Sandbox Code Playgroud)

此外,如果需要处理char 字符串中的每个字符串,请考虑使用基于范围的for循环;

for (char c : str)
   // ...
Run Code Online (Sandbox Code Playgroud)

  • 从技术上讲,成员字段“ size_type”是索引/大小的类型。通常是std :: size_t,但不一定。 (5认同)