Aly*_*Aly 2 c++ vector std division integer-division
可能重复:
int除以unsigned int导致翻转
嗨,我正在做以下事情:
struct coord{
int col;
};
int main(int argc, char* argv[]) {
coord c;
c.col = 0;
std::vector<coord> v;
for(int i = 0; i < 5; i++){
v.push_back(coord());
}
c.col += -13;
cout << " c.col is " << c.col << endl;
cout << " v size is " << v.size() << endl;
c.col /= v.size();
cout << c.col << endl;
}
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
c.col is -13
v size is 5
858993456
Run Code Online (Sandbox Code Playgroud)
但是,如果我将分割线更改为c.col /= ((int)v.size());I,则获得预期的输出:
c.col is -13
v size is 5
-2
Run Code Online (Sandbox Code Playgroud)
为什么是这样?