您的位置:首页 > 房产 > 建筑 > 南昌网站建设开发团队_公司网站建设内容_百度快速提交入口_苏州优化seo

南昌网站建设开发团队_公司网站建设内容_百度快速提交入口_苏州优化seo

2024/12/23 7:24:10 来源:https://blog.csdn.net/xuann/article/details/142799035  浏览:    关键词:南昌网站建设开发团队_公司网站建设内容_百度快速提交入口_苏州优化seo
南昌网站建设开发团队_公司网站建设内容_百度快速提交入口_苏州优化seo

C++ 标准库 <list> 是一个非常重要的容器类,用于存储元素集合,支持双向迭代器。<list>允许在容器的任意位置快速插入和删除元素。与数组或向量(<vector>)不同,<list> 不需要在创建时指定大小,并且可以在任何位置添加或删除元素,而不需要重新分配内存。

std::list与 std::vector 不同,std::list 元素在内存中不是连续存储的,而是分散存储,并通过指针链接在一起。这种结构使得 std::list 在插入和删除元素时非常高效,特别是在容器的中间位置。

基本操作:
包含头文件:#include <list>
声明列表:std::list<T> mylist;,其中 T 是存储在列表中的元素类型。
插入元素:mylist.push_back(value);
删除元素:mylist.pop_back(); 或 mylist.erase(iterator);
访问元素:mylist.front(); 和 mylist.back();
遍历列表:使用迭代器 for (auto it = mylist.begin(); it != mylist.end(); ++it)

基本特点:
双向迭代:<list> 提供了双向迭代器,可以向前和向后遍历元素。
非连续存储:由于元素是通过指针链接的,因此它们在内存中不需要连续存储。
快速插入和删除:可以在列表的任何位置快速插入或删除元素,不需要像向量移动大量元素。

示例代码:

#include <iostream>  
#include <list>    
int main() {  
    std::list<int> lst;  
  
    // 添加元素  
    lst.push_back(10);  
    lst.push_front(5);  
    lst.insert(lst.begin(), 20); // 在开头和第一个元素之间插入 20  
  
    // 遍历元素  
    for (std::list<int>::iterator it = lst.begin(); it != lst.end(); ++it) {  
        std::cout << *it << " ";  
    }  
    std::cout << std::endl;  
  
    // 删除元素  
    lst.pop_back(); // 删除最后一个元素  
    lst.erase(lst.begin()); // 删除第一个元素  
  
    // 再次遍历元素  
    for (std::list<int>::iterator it = lst.begin(); it != lst.end(); ++it) {  
        std::cout << *it << " ";  
    }  
    std::cout << std::endl;  
  
    // 排序  
    lst.push_back(3);  
    lst.push_back(1);  
    lst.sort(); // 对 list 进行排序  
  
    // 输出排序后的元素  
    for (std::list<int>::iterator it = lst.begin(); it != lst.end(); ++it) {  
        std::cout << *it << " ";  
    }  
    std::cout << std::endl;  
  
    return 0;  
}

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com