[問題] size()函數產生錯誤
開發平台(Platform): (Ex: Win10, Linux, ...)
win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
CodeBlock
問題(Question):
安安各位高手大家好,小弟我CPP新手啦
最近寫題目的時候有一題丟去judge 一直說我Runtime error
我找我已經accepted的朋友對了一下 幾乎一模一樣
最後才發現一個不一樣的地方
簡述一下那題(下面會附上程式碼):
就是給定一個長度為n的數列,然後output區域極值的數量
我的做法是先把給的那n個數丟進一個叫seq的vector
最後我是把for迴圈條件句中的i<seq.size()-2 改成i<n-2才accepted
https://ideone.com/jrAIvY
不過我不明白這兩個有什麼不一樣
隔天又出現了一個差不多的問題
https://ideone.com/5dYVz5
我把問題寫在裡面了,還有一點就是剛剛用XCode測試
tem.size()跳出了一個warning:
Implicit conversion loses integer precision: 'size_type' (aka 'unsigned long') to 'int'
先謝謝大家了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.120.178.253
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1517818693.A.4C4.html
→
02/05 16:32,
6年前
, 1F
02/05 16:32, 1F
→
02/05 18:06,
6年前
, 2F
02/05 18:06, 2F
→
02/05 18:06,
6年前
, 3F
02/05 18:06, 3F
→
02/05 18:08,
6年前
, 4F
02/05 18:08, 4F
→
02/05 19:22,
6年前
, 5F
02/05 19:22, 5F
→
02/05 20:14,
6年前
, 6F
02/05 20:14, 6F
推
02/06 00:25,
6年前
, 7F
02/06 00:25, 7F
→
02/06 01:26,
6年前
, 8F
02/06 01:26, 8F
謝謝大家 我回去翻了我的primer,發現我的基本觀念還真是糟糕
但若我今天想要拿一個假設string::size_type型別的數拿去跟型別為int的數做運算
是否勢必要做型別轉換,例如:
string::size_type ix = 1024 ;
int ival = ix ; // 這樣會跳出警告,因為long unsigned 大於 int
如果我確定那個變數ix並不會超過int的範圍,是否應該這樣寫
int ival2 = static_cast<string::size_type>(ix);
但我的Xcode仍跳出警告,請問是否我的理解錯誤了?
※ 編輯: bhbbbbb (59.120.178.253), 02/06/2018 10:12:14
推
02/06 11:10,
6年前
, 9F
02/06 11:10, 9F
→
02/06 11:10,
6年前
, 10F
02/06 11:10, 10F