VS2013 warning C4018 "<” 有符号/无符号不匹配
1, VS2013 warning C4018 "<” 有符号/无符号不匹配" 警告
出错代码:
void show(const vector<int>& nums){
for (int i = 0; i < nums.size(); i++){
cout << '\t' << nums[i];
}
cout << endl;
出错原因:
nums 是一个容器,nums.size() 在容器中被定义成 unsigned int 类型,所以 int i < nums.size() 会出现不同类型的比较问题。
错误解决:
把 i 定义为 unsigned int 类型即可,或者 size_t 类型
size_t 和 int 的区别是什么?
typedef unsigned int size_t
size_t 是无符号的,并且是平台无关的,表示 0-INT_MAX 的范围
所有博文均为原著,如若转载,请注明出处!