我怎样才能编辑这一行不再是一个警告

How can i edit this line to don't be a warning aymore

以下行给我一个警告:

for (int i = 0; i < SpamBannListArray.size(); i++)
char.cpp: In member function 'bool CHARACTER::SpamListCheck(const char*)':
char.cpp:7280: warning: comparison between signed and unsigned integer expressions

我需要更改什么才能消除上述警告?

您应该在 for() 循环 header 中为 i 的声明使用 unsigned 类型,因为 SpamBannListArray.size() 很可能 returns unsigned 类型:

 for (unsigned int i = 0; i < SpamBannListArray.size(); i++)
   // ^^^^^^^^

 for (size_t i = 0; i < SpamBannListArray.size(); i++)

否则您的代码可能会在遇到负值时 signed 值溢出/回绕。


正如在使用基于范围的 for() 循环的注释中所指出的,当前的 c++ 标准应该首选无需指定索引变量:

for (auto item : SpamBannListArray) {
    // Do something with item
}

如果您需要就地操作项目,请使用 auto &