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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM