两种写法:
int index = &*it - &nums[0];
int index1 = it - nums.begin();
int main()
{
vector<int> nums{10, 1, 2, 4, 7, 2};
auto it = nums.begin();
it += 4;
int index = &*it - &nums[0]; //index 即为it对应元素的下标
int index1 = it - nums.begin(); //index 为it对应元素的下标,两种方式都可
cout << index1 << endl;
cout << index << endl;
cout << *it;
}
输出: