vector<int> nums = {1, 2, 2, 3, 4, 4, 5}; auto it = unique(nums.begin(), nums.end()); 这样之后vector是{1,2,3,4,5,2,4}吗
时间: 2023-08-19 12:41:02 浏览: 73
nums:nums(3, 6) => [3, 4, 5, 6]
不正确。经过 `unique()` 函数去重后,`nums` 中的元素变成了 `{1, 2, 3, 4, 5, 4, 5}`,其中最后两个元素是被移动到了 `nums` 的末尾位置,而返回值 `it` 指向了去重后的末尾位置,即指向了 `nums` 中的数字 5。因此,如果输出 `nums` 的值,得到的结果应该是 `{1, 2, 3, 4, 5, 4, 5}`。
如果想要将 `nums` 中的重复元素删除,需要使用 `erase()` 函数,将 `it` 与 `nums.end()` 之间的元素删除,代码如下:
```cpp
nums.erase(it, nums.end());
```
执行上述代码之后,`nums` 中的元素变成了 `{1, 2, 3, 4, 5}`,重复的元素被成功地删除了。
阅读全文