erase和remove区别

erase和remove区别在这个案例中 template 只能用 typename 这样在 print 函数中才可以用到模板 而且 main 函数中 vector 需要实例化为类型 erase 和 remove 的区别在于 rease 是真正删除了元素 迭代器不能再访问了 remove 只是简单地把要 remove 的元素移到了容量的最后 迭代器还是可以访问的

大家好,我是讯享网,很高兴认识大家。

在这个案例中,template只能用typename,这样在print函数中才可以用到模板,而且main函数中vector需要实例化为类型


讯享网

template <typename T> void print(vector<T>& a) { // 打印容器a中的所有元素 for (vector<T>::iterator it = a.begin(); it != a.end(); it++) cout << *it << " "; cout << endl; } int main() { vector<int> array; array.push_back(1); array.push_back(2); array.push_back(3); array.push_back(3); array.push_back(4); array.push_back(5); array.erase(array.begin()); // 调用erase删除1 print(array); vector<int>::iterator pos; pos = remove(array.begin(), array.end(), 2); // 调用remove删除2 print(array); if ((pos + 1) == array.end()) { cout << "(pos + 1) == array.end()" << endl; } remove(array.begin(), array.end(), 3); print(array); system("pause"); return 0; }

讯享网
小讯
上一篇 2025-04-02 15:41
下一篇 2025-03-22 09:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/122321.html