📜  C++ |新增和删除|问题2(1)

📅  最后修改于: 2023-12-03 15:29:51.965000             🧑  作者: Mango

C++ | 新增和删除 | 问题2

在C++中,我们可以使用多种方法来新增和删除数据。这些方法对于各种应用程序都非常有用。本文将介绍一些在C++中新增和删除数据的方法。

在数组中新增和删除元素

在数组中,新增和删除元素可能是一个有用的操作。在C++中,可以使用以下方法来执行这些操作。

新增元素

要在数组中新增元素,可以使用以下代码:

int arr[100];
int n = 10;

// 在数组末尾新增元素
arr[n++] = 1;

// 在数组开头新增元素
for(int i=n; i>0; i--) {
    arr[i] = arr[i-1];
}
arr[0] = 2;
n++;
删除元素

要删除数组中的元素,可以使用以下代码:

int arr[100] = {1,2,3,4,5};
int n = 5;
int index = 2; // 要删除的元素的下标

// 删除元素
for(int i=index; i<n-1; i++) {
    arr[i] = arr[i+1];
}
n--;
在链表中新增和删除节点

在链表中,新增和删除节点是相对容易的。C++中的std::list是一个提供了链表功能的STL容器,下面我们将演示如何使用std::list进行新增和删除节点的操作。

新增节点

要新增节点,我们可以使用std::list::emplace()std::list::insert()方法:

#include <list>

std::list<int> myList = {1,2,4,5};

// 在头部新增节点
myList.emplace_front(0);

// 在尾部新增节点
myList.emplace_back(6);

// 在指定位置插入节点
auto iter = myList.begin();
std::advance(iter, 2); // 移动迭代器到下标为2的位置
myList.emplace(iter, 3);
删除节点

要删除节点,我们可以使用std::list::erase()方法:

std::list<int> myList = {1,2,3,4,5};
auto iter = myList.begin();
std::advance(iter, 2); // 移动迭代器到下标为2的位置

// 删除指定节点
myList.erase(iter);

// 删除头部节点
myList.pop_front();

// 删除尾部节点
myList.pop_back();

总结:在C++中,新增和删除元素的方法因数据结构类型而异。对于数组,我们必须手动执行新增和删除操作,而对于链表,则提供了一个更加方便的STL容器函数std::list。无论使用哪种方式,新增和删除元素的操作将为我们带来更加灵活的数据处理能力。