template <typename T>
int eliminate_duplicate(vector<T> &A) {
sort(A.begin(), A.end()); // makes identical elements become neighbors
auto it = unique(A.begin(), A.end()); // removes neighboring duplicates
A.resize(it - A.cbegin()); // truncates the unnecessary trailing part
return it - A.cbegin(); // Question> Is this line valid?
}
最后一行有效吗?
这是我的担心:在调用 之后resize
,迭代器it
将指向一个无效的位置,那么我们还能像it - A.cbegin()
在返回行中那样使用它吗?