整数ベクトルがある場合
vector<int> vec;
そして私は次のようにループします
for(int i=0; i<vec.size(); i++)
{
// do something
}
署名付き/未署名の不一致の警告が表示されます。
もちろん、問題を解決するためiに型を宣言できます。size_tしかし、そのままにしておくiとint、実行時に問題が発生する可能性がありますか?
iterator代わりにベクトルを使用してください。
vector<int>::iterator it;
for (it = vec.begin(); it!= vec.end(); ++it)
{
//do something
}
はい。signedが格納できる値を超える大きな数値の場合、未定義の動作になります。
ただし、保管できる少数の場合はsigned問題ありません。
確かにvec.size()、signed int の最大値よりも大きい場合。
この表limits.hごとに最大値を見つけることができます。