复制
收藏
提问
简洁
std::vector remove
3月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
std::vector
是 C++ 中一种常用的序列容器,它提供了多种方法来删除元素。std::remove
并不是用来直接删除 std::vector
中的元素的,而是一个移除算法,它用于重新排列容器中的元素,将满足特定条件的元素移动到容器的末尾,但不改变容器的大小。以下是几种删除 std::vector
元素的方法:
pop_back()
: 这个方法用于删除std::vector
容器中的最后一个元素。它不改变容器的容量,只是简单地减少size()
的值。erase()
: 这是std::vector
的成员函数,用于删除指定位置的单个元素或指定范围内的元素。使用erase()
后,容器的大小会相应减少。clear()
: 这个方法用于移除std::vector
中的所有元素,容器的大小变为 0,但保留容器的容量。shrink_to_fit()
: 这个方法请求减少std::vector
的容量以适应其大小,但并不删除元素。remove()
: 这是一个非成员函数,用于重新排列元素,将满足特定条件的元素移动到容器的末尾。然后通常需要配合erase()
来删除这些元素,从而改变容器的大小。
例如,如果你想删除 std::vector
中所有等于某个值的元素,你可以使用 std::remove
算法和 erase()
方法的组合:
std::vector<int> vec = {1, 2, 3, 4, 5, 2};
vec.erase(std::remove(vec.begin(), vec.end(), 2), vec.end());
在这个例子中,std::remove
将所有值为 2 的元素移动到 vec
的末尾,然后 erase()
被用来删除这些元素。678
你觉得结果怎么样?