C++之list成员函数应用总结(二百三十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:理解C++之list成员函数应用。

2.list成员函数介绍

C++中的std::list是一个双向链表的容器,它提供了许多成员函数用于对链表进行操作。以下是一些常用的std::list成员函数的列表:

  • 构造函数:

    • list():默认构造函数。
    • list(const list& other):拷贝构造函数。
    • list(size_type count, const T& value):构造函数,创建包含count个值为value的元素的链表。
  • 迭代器(Iterator)相关函数:

    • begin():返回指向链表第一个元素的迭代器。
    • end():返回指向链表尾后位置的迭代器。
    • rbegin():返回指向链表最后一个元素的逆向迭代器。
    • rend():返回指向链表首元素前位置的逆向迭代器。
  • 容量相关函数:

    • empty():检查链表是否为空。
    • size():返回链表中元素的数量。
    • max_size():返回链表所允许的最大元素数量。
  • 元素访问与修改相关函数:

    • front():返回链表的第一个元素的引用。
    • back():返回链表的最后一个元素的引用。
    • push_back(const T& value):将元素加入链表尾部。
    • push_front(const T& value):将元素加入链表头部。
    • pop_back():删除链表尾部的元素。
    • pop_front():删除链表头部的元素。
  • 修改容器相关函数:

    • clear():清空链表中的所有元素。
    • erase(iterator position):删除指定位置处的元素。
    • erase(iterator first, iterator last):删除[first, last)范围内的元素。
    • insert(iterator position, const T& value):在指定位置之前插入元素。

3.应用实例

1. begin()end() 函数:

#include 
#include 

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

    // 使用 begin() 函数获取列表的第一个元素的迭代器
    std::list<int>::iterator iterStart = myList.begin();

    // 使用 end() 函数获取列表的最后一个元素的迭代器
    std::list<int>::iterator iterEnd = myList.end();

    // 遍历列表
    for (std::list<int>::iterator iter = iterStart; iter != iterEnd; ++iter) {
        std::cout << *iter << " ";
    }

    return 0;
}

2. rbegin()rend() 函数:

#include 
#include 

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

    // 使用 rbegin() 函数获取列表的最后一个元素的反向迭代器
    std::list<int>::reverse_iterator iterStart = myList.rbegin();

    // 使用 rend() 函数获取列表的第一个元素的反向迭代器
    std::list<int>::reverse_iterator iterEnd = myList.rend();

    // 遍历列表
    for (std::list<int>::reverse_iterator iter = iterStart; iter != iterEnd; ++iter) {
        std::cout << *iter << " ";
    }

    return 0;
}

3. empty() 函数:

#include 
#include 

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

    // 使用 empty() 函数判断列表是否为空
    if (myList.empty()) {
        std::cout << "List is empty" << std::endl;
    } else {
        std::cout << "List is not empty" << std::endl;
    }

    return 0;
}

4. size() 函数:

#include 
#include 

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

    // 使用 size() 函数获取列表的元素个数
    std::cout << "Size of list: " << myList.size() << std::endl;

    return 0;
}

5. max_size() 函数:

#include 
#include 

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

    // 使用 max_size() 函数获取列表的最大容量
    std::cout << "Max size of list: " << myList.max_size() << std::endl;

    return 0;
}

6. front() 函数:

#include 
#include 

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

    // 使用 front() 函数获取列表的第一个元素
    int firstElement = myList.front();

    std::cout << "First element of list: " << firstElement << std::endl;

    return 0;
}

7. back() 函数:

#include 
#include 

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

    // 使用 back() 函数获取列表的最后一个元素
    int lastElement = myList.back();

    std::cout << "Last element of list: " << lastElement << std::endl;

    return 0;
}

8. push_back() 函数:

#include 
#include 

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

    // 使用 push_back() 函数在列表末尾插入元素
    myList.push_back(6);

    // 输出列表中的元素
    for (int num : myList) {
        std::cout << num << " ";
    }

    return 0;
}

9. push_front() 函数:

#include 
#include 

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

    // 使用 push_front() 函数在列表开头插入元素
    myList.push_front(0);

    // 输出列表中的元素
    for (int num : myList) {
        std::cout << num << " ";
    }

    return 0;
}

10. pop_back() 函数:

#include 
#include 

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

    // 使用 pop_back() 函数删除列表末尾的元素
    myList.pop_back();

    // 输出列表中的元素
    for (int num : myList) {
        std::cout << num << " ";
    }

    return 0;
}

11. pop_front() 函数:

#include 
#include 

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

    // 使用 pop_front() 函数删除列表开头的元素
    myList.pop_front();

    // 输出列表中的元素
    for (int num : myList) {
        std::cout << num << " ";
    }

    return 0;
}

12. clear() 函数:

#include 
#include 

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

    // 使用 clear() 函数清空列表
    myList.clear();

    // 输出列表中的元素(为空)
    for (int num : myList) {
        std::cout << num << " ";
    }

    return 0;
}

13. erase() 函数:

#include 
#include 

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

    // 使用 erase() 函数删除列表中的指定元素
    std::list<int>::iterator iter = myList.erase(myList.begin()); // 删除第一个元素

    // 输出列表中的元素
    for (int num : myList) {
        std::cout << num << " ";
    }

    return 0;
}

14. insert() 函数:

#include 
#include 

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

    // 使用 insert() 函数在指定位置插入元素
    std::list<int>::iterator iter = myList.insert(myList.begin(), 0); // 在第一个元素前插入0

    // 输出列表中的元素
    for (int num : myList) {
        std::cout << num << " ";
    }

    return 0;
}

你可能感兴趣的:(C++入门系列,c++,list,开发语言)