#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
vector<int> v = {1, 2, 3, 4, 5, 6, 7};
int i = -4;
cout << i << endl;
cout << v.size() << endl;
cout << i % v.size() << endl;
cout << -4 % 7 << endl;
}
以上代码输出:
-4
7
5
-4
有人可以解释一下为什么i % v.size()
输出的是5
而不是-4
吗?我猜想这可能与vector.size()
有关,但不确定其中的原因。先谢谢了。
i % v.size()
或signed % unsigned
的情况,有符号值在%
操作实际发生之前被转换为无符号类型,因此...这里没有什么意外的情况) - Nick stands with Ukraine