1, VS2013 warning C4018 "<” 有符号/无符号不匹配" 警告

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 的范围

 

相关文章:

  • 2021-10-25
  • 2021-10-29
  • 2021-09-04
  • 2022-12-23
  • 2021-12-03
  • 2021-11-29
  • 2021-07-15
猜你喜欢
  • 2022-01-17
  • 2022-02-05
  • 2022-03-10
  • 2022-12-23
  • 2021-07-18
  • 2021-05-19
  • 2021-12-02
相关资源
相似解决方案