c++vectorerase的简单介绍
简介:
在C++中,vector是一种非常常用的容器,用于存储和管理一组元素。vector提供了许多强大的函数,如vector::erase(),这个函数可以用来从vector中删除一个或多个元素。本文将详细讨论vector::erase()函数。
多级标题:
一、vector::erase()函数的概述
二、vector::erase()函数的语法
三、vector::erase()函数的常见用法
四、vector::erase()函数的注意事项
五、vector::erase()函数的示例代码
内容详细说明:
一、vector::erase()函数的概述
vector::erase()函数用于删除vector中指定位置的元素。这个函数的执行会导致后面的元素向前移动,以填补新出现的空间。
二、vector::erase()函数的语法
vector::erase()函数的语法如下所示:
vector_name.erase(position);
其中,position是指向vector中要删除元素的迭代器。如果需要删除多个元素,则可以使用下面这个语法:
vector_name.erase(start, end);
其中,start和end分别是指向要删除元素的迭代器的起始位置和结束位置。
三、vector::erase()函数的常见用法
以下是vector::erase()函数的一些常用用法:
1. 删除指定位置的元素
使用迭代器position来指定要删除的元素的位置。
vector
auto it = numbers.begin() + 3;
numbers.erase(it); // 删除第4个元素
2. 删除一个范围内的元素
使用迭代器start和end来指定要删除元素的起始位置和结束位置。
vector
auto start = numbers.begin() + 1;
auto end = numbers.begin() + 3;
numbers.erase(start, end); // 删除第2个和第3个元素
3. 清空整个vector
使用clear()函数来清空整个vector。
vector
numbers.clear(); // 清空整个vector
四、vector::erase()函数的注意事项
在使用vector::erase()函数时需要注意以下几点:
1. 如果要删除多个元素,建议从后面往前面删除,以避免迭代器失效。
2. 如果删除的元素是某个对象的指针,则需要手动delete掉该指针。
3. 如果使用了erase()函数后,迭代器失效了,则需要使用advance()函数来更新迭代器的位置。
五、vector::erase()函数的示例代码
下面是一个使用vector::erase()函数的示例代码:
vector
auto it = numbers.begin() + 3;
numbers.erase(it);
for(auto num : numbers) {
cout << num << " ";
// 输出:1 2 3 5
在上面的代码中,我们首先定义了一个存储整数的vector,然后使用迭代器指定要删除的元素的位置,最后调用erase()函数删除该元素,并输出剩下的元素。