std::list::erase
来自cppreference.com
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
iterator erase( iterator pos ); iterator erase( const_iterator pos ); |
(1) | (至 C++11) (C++11 起) |
iterator erase( iterator first, iterator last ); iterator erase( const_iterator first, const_iterator last ); |
(2) | (至 C++11) (C++11 起) |
从容器中移除指定的元素.
原文:
Removes specified elements from the container.
1) 移除pos
处的元素.
2) 移除范围[first; last)
内的元素.
References and iterators to the erased elements are invalidated. Other references and iterators are not affected.
目录 |
[编辑] 参数
pos | - | 要移除的元素的迭代器
|
first, last | - | 要移除的元素范围
|
[编辑] 返回值
迭代器后,最后删除的元素.
原文:
iterator following the last removed element.
[编辑] 为例
#include <list> #include <iostream> #include <iterator> int main( ) { std::list<int> c{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; for (auto &i : c) { std::cout << i << " "; } std::cout << '\n'; c.erase(c.begin()); for (auto &i : c) { std::cout << i << " "; } std::cout << '\n'; std::list<int>::iterator range_begin = c.begin(); std::list<int>::iterator range_end = c.begin(); std::advance(range_begin,2); std::advance(range_end,5); c.erase(range_begin, range_end); for (auto &i : c) { std::cout << i << " "; } std::cout << '\n'; }
输出:
0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 6 7 8 9
[编辑] 复杂性
1) Constant.
2) linear in the distance between first
and last
.
[编辑] 另请参阅
清除其内容 (公共成员函数) |