list

技术文章 2年前 (2020) 完美者
958 0

标签:清除   特殊性   ret   自动   turn   iter   插入   int   code   

list

list为双向链表:随机访问速度差,可以快速插入和删除

  1. 头文件为
#include<list> 
  1. 定义
list<int> l; 
  1. 前插\后插\前删\后删
l.push_front(t);//前插
l.push_back(t)://后插
l.pop_front();//前删
l.pop_back();//后删 
  1. 返回链表的头/尾元素
l.front();//链表的头元素
l.back();//链表的尾元素 
  1. 返回链表的头/尾迭代器
l.begin();//链表的头迭代器
l.end();//链表的尾迭代器 
  1. 链表的大小/非空/清除
l.size();//链表的大小
l.empty();//链表的非空
l.clear();//链表的清空 
  1. 链表的遍历
for(list<int>::iterator it=l.begin();it!=l.end();l++)       
    cout<<(*it)
  1. 链表的插入/删除
l.insert(l.begin(),5);//在链表的开头插入5,第一个参数为迭代器,第二个参数为插入的内容,insert后迭代器会自动向后移动一个位
l.erase(l.begin()); //链表的删除,参数为迭代器
  1. 链表迭代器的特殊性
    ????链表的迭代器会始终跟着一开始赋值的那个元素,当那个元素的位置改变时,迭代器的位置也会改变 代码:
#include<algorithm>
#include<iostream>
#include<list>

using namespace std;

int main() {
    list<int>l;
    l.push_back(1);
    l.push_back(2);
    l.push_back(3);
    list<int>::iterator it=l.begin();
    cout<<"一开始it指针指向链表的头:"<<*it<<endl;
    l.insert(l.begin(),5);
    cout<<"当在链表的头插入一个数字后,it指针指向:"<<*it;    return 0;
} 

结果

一开始it指针指向链表的头:1
当在链表的头插入一个数字后,it指针指向:1

list

标签:清除   特殊性   ret   自动   turn   iter   插入   int   code   

原文地址:https://www.cnblogs.com/spciay/p/13510299.html

版权声明:完美者 发表于 2020-08-18 13:20:55。
转载请注明:list | 完美导航

暂无评论

暂无评论...