list

list也是一个容器,和vector一样,不同的是,list是用双向链表实现的,所以对于list来说,在中间插入删除数据要比vector快得多

 

首先引入头文件

#include <list>

 

创建一个list

std::list<int> lgh;

和vector一样 可以在创建的同时初始化

比如

list<int> lgh(2,10);
list<int> lgh(10);
list<int> lgh={1,2,3,4,5};

 

接下来使用迭代器打印全部的list元素

同时还要用到 begin()   end() 

int main()
{
    list<int> lasdf = {1,2,3,4,5,7,8};
    list<int>::iterator iter;
    for ( iter = lasdf.begin(); iter  != lasdf.end(); iter++)
    {
        cout<<*iter<<' ';
    }
}

 

也可以用同样的方式输出第一个元素  最后一个元素 size长度等

    cout<<lasdf.front()<<endl;
    cout<<lasdf.back()<<endl;
    cout<<lasdf.size()<<endl;

 

以下是常用成员函数

assign() 给list赋值 
back() 返回最后一个元素 
begin() 返回指向第一个元素的迭代器 
clear() 删除所有元素 
empty() 如果list是空的则返回true 
end() 返回末尾的迭代器 
erase() 删除一个元素 
front() 返回第一个元素 
get_allocator() 返回list的配置器 
insert() 插入一个元素到list中 
max_size() 返回list能容纳的最大元素数量 
merge() 合并两个list 
pop_back() 删除最后一个元素 
pop_front() 删除第一个元素 
push_back() 在list的末尾添加一个元素 
push_front() 在list的头部添加一个元素 
rbegin() 返回指向第一个元素的逆向迭代器 
remove() 从list删除元素 
remove_if() 按指定条件删除元素 
rend() 指向list末尾的逆向迭代器 
resize() 改变list的大小 
reverse() 把list的元素倒转 
size() 返回list中的元素个数 
sort() 给list排序 
splice() 合并两个list 
swap() 交换两个list 
unique() 删除list中重复的元素

 

排序

int main()
{
    list<int> lasdf = {1,2,3,4,5,7,8};
    list<int>::iterator iter;
    for ( iter = lasdf.begin(); iter  != lasdf.end(); iter++)
    {
        cout<<*iter<<' ';
    }

    cout<<lasdf.front()<<endl;
    cout<<lasdf.back()<<endl;
    cout<<lasdf.size()<<endl;
    lasdf.push_back(5);
    lasdf.push_front(18);
    lasdf.sort();
    for ( iter = lasdf.begin(); iter  != lasdf.end(); iter++)
    {
        cout<<*iter<<' ';
    }
}

输出结果

1 2 3 4 5 7 8 1
8
7
1 2 3 4 5 5 7 8 18 

 

因为list和vector的用法和函数几乎一样 所以我就不一个个写进来

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2020-03-30 19:00  祁峰_1024  阅读(303)  评论(0编辑  收藏  举报