删除重复元素时使用了 unique 函数,但没有修改 vector 的大小,导致后面访问了不该访问的元素
时间: 2023-12-10 11:41:20 浏览: 116
C++中unique函数的用法示例
5星 · 资源好评率100%
是的,您说的很对。在使用 unique 函数去除 vector 中重复元素时,虽然 vector 中的元素已经被修改了,但 vector 的大小并没有改变。因此,如果后面继续访问 vector 时,可能会访问到不应该访问的元素,从而导致程序出错。
解决这个问题的方法是,在使用 unique 函数后,使用 erase 函数将 vector 中多余的元素删除,以更新 vector 的大小。具体来说,可以这样写:
```
vec.erase(unique(vec.begin(), vec.end()), vec.end());
```
这行代码的意思是,使用 unique 函数去除 vector 中重复元素,然后使用 erase 函数删除 vector 中多余的元素,从而更新 vector 的大小。这样做就可以避免访问不该访问的元素了。
阅读全文