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