以下行给了我一个警告:
for (int i = 0; i < SpamBannListArray.size(); i++)
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)char.cpp: In member function 'bool CHARACTER::SpamListCheck(const char*)': char.cpp:7280: warning: comparison between signed and unsigned integer expressions
为了摆脱上面的警告,我需要改变什么?
你应该在循环头中使用一个unsigned类型来声明,因为最有可能返回一个类型:ifor()SpamBannListArray.size()unsigned
for (unsigned int i = 0; i < SpamBannListArray.size(); i++)
// ^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
要么
for (size_t i = 0; i < SpamBannListArray.size(); i++)
Run Code Online (Sandbox Code Playgroud)
否则,signed在遇到负值时,您的代码可能会出现值溢出/包装.
正如在使用基于范围的for()循环的注释中指出的那样,不需要指定索引变量应该首选使用当前的c ++标准:
for (auto item : SpamBannListArray) {
// Do something with item
}
Run Code Online (Sandbox Code Playgroud)
如果您需要在内部操作项目,请使用auto &.
| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |