vector<int> nums = {1, 2, 2, 3, 4, 4, 5}; auto it = unique(nums.begin(), nums.end()); 这样之后vector是什么样的
时间: 2024-03-28 17:41:49 浏览: 35
nums:nums(3, 6) => [3, 4, 5, 6]
经过 `unique()` 函数去重后,`nums` 中的元素变成了 `{1, 2, 3, 4, 5, 4, 5}`,其中最后两个元素是被移动到了 `nums` 的末尾位置,而返回值 `it` 指向了去重后的末尾位置,即指向了 `nums` 中的数字 5。需要注意的是,`unique()` 函数只会将重复的元素移到容器的末尾,并不会真正删除这些元素,因此实际上 `nums` 中还是包含了重复的元素。
如果想要真正删除重复的元素,需要使用 `erase()` 函数,将 `it` 与 `nums.end()` 之间的元素删除,代码如下:
```cpp
nums.erase(it, nums.end());
```
执行上述代码之后,`nums` 中的元素变成了 `{1, 2, 3, 4, 5}`,重复的元素被成功地删除了。
阅读全文