加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c++STL容器之list容器

发布时间:2020-12-16 09:06:44 所属栏目:百科 来源:网络整理
导读:链表:将数据进行链式存储。物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接进行实现的。 STL中的链表是一个双向循环链表。 一、构造函数 listT lst;list(bag,end);list(n,elem);list( const list list); 二、list的赋值和交换 a

链表:将数据进行链式存储。物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接进行实现的。

STL中的链表是一个双向循环链表。

一、构造函数

list<T> lst;
list(bag,end);
list(n,elem);
list(const list &list);

二、list的赋值和交换

assign(beg,end);
assign(n,ele);
list& operator=(const list &list);
swap(list);
#include<iostream>
#include<list>
#include<algorithm>
using namespace std;
//加入const限制只读,并使用const_iterator
void printList(const list<int>&d) {
    for (list<int>::const_iterator it = d.begin(); it != d.end(); it++) {
        cout << *it <<" ";
    }
    cout << endl;
}

void test() {
    list<int> lst1;
    for (int i = 0; i < 10; i++) {
        lst1.push_back(i);
    }    
    list< lst2;
    list< lst3;
    lst3.assign(lst1.begin(),lst1.end());
    list< lst4;
    lst4.assign(3,4);
    cout << "交换前:" << endl;
    printList(lst1);
    printList(lst4);
    cout << 交换后: endl;
    lst1.swap(lst4);
    printList(lst1);
    printList(lst4);

}
int main() {
    test();
    system(pause);
    return 0;
}

三、大小操作

empty();
size();
resize(ele);
resize(num,ele);

四、插入和删除

push_back(ele)尾部插入元素
pop_back()尾部删除元素
push_front(ele)头部插入元素
pop_front()头部删除元素
注意pos、start、end参数是一个迭代器
insert(pos,ele)向指定的索引位置插入元素,返回新数据的位置
insert(pos,n,1)">向指定的索引位置插入n个元素,无返回值
insert(pos,beg,end)在pos位置插入区间为[beg,end]之间的元素,无返回值
clear()移除所有数据
erase(pos)删除指定索引的元素
erase(start,1)">删除start到end之间的元素
remove(ele);删除指定的元素

五、数据存取

front();
back();

六、反转后排序

#include<iostream>bool myCompare(int val1, val2) {
    return val1 > val2;
}

 lst1;
    lst1.push_back();
    lst1.push_back(213反转
    lst1.reverse();
    所有不支持随机访问的迭代器的容量,是不支持sort排序
    sort(lst1.begin(),lst1.end());不合法
    内部会提供相应的算法
    lst1.sort();默认从大至小
    printList(lst1);
    要想降序排序,自己定义规则
    lst1.sort(myCompare);
    printList(lst1);
}
;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读