c++list(stllist)删除元素方法
来源:千锋教育
发布人:zyh
2023-05-31
推荐
在 C++ 中,std::list 是一个双向链表容器,提供了删除元素的多种方法。以下是几种常用的删除元素的方法:
erase() 函数:该函数用于删除指定位置的元素或者指定范围的元素。
iterator erase (iterator position);
iterator erase (iterator first, iterator last);
示例:
std::list<int> myList = {1, 2, 3, 4, 5};
// 删除指定位置的元素
auto it = myList.begin();
std::advance(it, 2); // 将迭代器移动到要删除的位置
myList.erase(it); // 删除第三个元素
// 删除指定范围的元素
auto first = myList.begin();
auto last = myList.end();
std::advance(first, 1); // 将迭代器移动到要删除的起始位置
std::advance(last, -1); // 将迭代器移动到要删除的结束位置
myList.erase(first, last); // 删除第二个和倒数第二个元素
remove() 函数:该函数用于删除指定值的所有元素。
void remove (const value_type& val);
示例:
std::list<int> myList = {1, 2, 3, 2, 4, 5};
myList.remove(2); // 删除所有值为2的元素
pop_front() 和 pop_back() 函数:分别用于删除链表的第一个元素和最后一个元素。
void pop_front();
void pop_back();
示例:
std::list<int> myList = {1, 2, 3, 4, 5};
myList.pop_front(); // 删除第一个元素
myList.pop_back(); // 删除最后一个元素
这些是 std::list 容器中常用的删除元素的方法,可以根据具体的需求选择适合的方法进行删除操作。需要注意的是,在删除元素后,容器的迭代器可能会失效,所以需要谨慎操作。
下一篇c++seekg函数用法