C++ STL中的deque :: clear()和deque :: erase()

C++ STL中的deque :: clear()和deque :: erase()

C++ STL中,deque是一个双端队列容器,可以在队列前端和后端分别进行插入、删除和查找等操作。然而,在实际使用中,队列中有时需要删除或清空元素,此时就需要使用deque :: clear()和deque :: erase()方法。

deque :: clear()

clear()方法是用于从deque中删除所有元素并释放内存。该方法没有参数,可以被任何空的或包含元素的deque调用。以下是一个示例代码:

#include <iostream>  
#include <deque>  
using namespace std;  

int main( ) {  
    deque <int> d1;  
    for (int i = 1; i <= 5; i++)  
        d1.push_back(i);  

    cout << "队列中的元素为:";  
    for (int i = 0; i < d1.size(); i++)  
        cout << d1[i] << " ";  
    cout << endl;  

    d1.clear();  

    cout << "队列已清空,元素个数为:" << d1.size();  
    return 0;  
}  

输出:

队列中的元素为:1 2 3 4 5 
队列已清空,元素个数为:0

首先,在此代码中创建了一个包含值1到5的deque,并使用push_back()方法将它们插入。然后,用clear()方法来清空deque并输出其大小。

deque :: erase()

erase()函数是用于删除deque中指定范围内的元素。该函数有两个可选参数,分别是迭代器begin和迭代器end,其中begin是要删除元素的第一个元素的迭代器,end是要删除的元素的最后一个元素后的迭代器。以下是一个示例代码:

#include <iostream>  
#include <deque>  
using namespace std;  

int main( ) {  
    deque <int> d1;  
    for (int i = 1; i <= 5; i++)  
        d1.push_back(i);  

    cout << "队列中的元素为:";  
    for (int i = 0; i < d1.size(); i++)  
        cout << d1[i] << " ";  
    cout << endl;  

    d1.erase(d1.begin(), d1.begin() + 2);  

    cout << "删除前两个元素后,队列中的元素为:";  
    for (int i = 0; i < d1.size(); i++)  
        cout << d1[i] << " ";  
    cout << endl;  

    return 0;  
}  

输出:

队列中的元素为:1 2 3 4 5 
删除前两个元素后,队列中的元素为:3 4 5 

在此代码中,我们创建一个包含值1到5的deque,并在其中插入元素。然后使用erase()方法,从列表的开始删除前两个元素(1和2),并输出更新后的队列。

结论

在本篇文章中,介绍了deque :: clear()和deque :: erase()方法用于删除deque中的元素。clear()方法用于删除整个deque,而erase()方法用于删除特定范围内的元素。这些方法在实际开发过程中非常有用,因为它们可以帮助您腾出内存空间,并删除不需要的元素。当然,在删除deque中的元素时,通常需要注意保存需要保留的元素,并且只删除不需要的元素。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

C++ 教程