具有矢量大小的C ++模数

问题描述 投票:2回答:1
#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()有关,但是不确定潜在的原因是什么。提前致谢。

c++ modulus
1个回答
0
投票

因为v.size返回size_t

cout << -4 % size_t(7) << endl; // 5

看看modulo-operator-with-negative-values

© www.soinside.com 2019 - 2024. All rights reserved.