容器list怎么 插入一个元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了容器list怎么 插入一个元素相关的知识,希望对你有一定的参考价值。

    List究竟是什么?

    List是接口--继承于collection序列(接口)

    List是有序的 collection(也称为序列)。该接口的实现类可以对列表中每个元素的插入位置进行精确地控制。


    List如何插入元素?

    List 接口提供了两种在列表的插入元素的方法。

        add(E e)   向列表的尾部添加指定的元素(可选操作)。 

        add(int index, E element) 在列表的指定位置插入指定元素(可选操作)。 


    参考实例

    以List的实现类ArrayList为例

import java.util.ArrayList;
import java.util.List;

public class ListDemo 
public static void main(String[] args) 
List<String> list  = new ArrayList<String>();
list.add("学习");//第一种插入方式,插入到序列的尾部
list.add("java");
list.add(0,"我");//第二种插入方式,插入到序列的指定位置。索引从0开始。所以这里就是插入到序列的头部。
System.out.println(list);//输出序列

输出结果

[我, 学习, java]

参考技术A list.add(obj); // 将obj插入到list的末尾
list.add(index, obj); // 将obj插入到list中index位置
参考技术B list<int> l1;
l1.push_back(3);//尾部插入
l1.push_front(2);//头部插入

STL——容器(List)List 的概念

1. List 容器的基本概念

1. list 是一个双向链表容器,可高效的进行插入删除元素,他的原理在于每个元素都有两个指针来记录前后两个元素的地址,像火车车厢一样,list 中各个元素在物理存储单元上非连续,是通过指针相连在一起的。

2. 相较于vector的连续线性空间,list会显得复杂许多,他的好处是每次插入或者删除1个元素,就是配置或释放一个元素的空间。

3. list 不可以随机存取元素,所以不支持 at.(position)函数与[]操作符。可以对其迭代器执行++,但是不能这样操作迭代器:it + 3

4. list 采用动态内存分配,不会造成内存的浪费和溢出

5. 链表执行插入和删除操作十分方便,修改指针即可,不需要移动大量元素

技术图片

 

2. list 构造函数

1 list<T> lstT;        //list采用采用模板类实现,对象的默认构造形式:
2 list(beg,end);       //构造函数将[beg, end)区间中的元素拷贝给本身。
3 list(n,elem);        //构造函数将n个elem拷贝给本身。
4 list(const list &lst);  //拷贝构造函数。

 

 

3. list 的数据元素插入和删除操作

 1 push_back(elem);  //在容器尾部加入一个元素
 2 pop_back();      //删除容器中最后一个元素
 3 push_front(elem);  //在容器开头插入一个元素
 4 pop_front();      //从容器开头移除第一个元素
 5 insert(pos,elem);  //在pos位置插elem元素的拷贝,返回新数据的位置。
 6 insert(pos,n,elem);  //在pos位置插入n个elem数据,无返回值。
 7 insert(pos,beg,end);//在pos位置插入[beg,end)区间的数据,无返回值。
 8 clear();        //移除容器的所有数据
 9 erase(beg,end);    //删除[beg,end)区间的数据,返回下一个数据的位置。
10 erase(pos);      //删除pos位置的数据,返回下一个数据的位置。
11 remove(elem);      //删除容器中所有与elem值匹配的元素。

 

4. list 的大小操作

1 size();//返回容器中元素的个数
2 empty();//判断容器是否为空
3 resize(num);//重新指定容器的长度为num,若容器变长,则以默认值填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。
4 resize(num, elem);//重新指定容器的长度为num,若容器变长,则以elem值填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。

 

 

5. list 的赋值操作

1 assign(beg, end);//将[beg, end)区间中的数据拷贝赋值给本身。
2 assign(n, elem);//将n个elem拷贝赋值给本身。
3 list& operator=(const list &lst);//重载等号操作符
4 swap(lst);//将lst与本身的元素互换。

 

 

6. list 数据的存取

  1 front();//返回第一个元素。

2 back();//返回最后一个元素。 

 

7. list 翻转排序

  1 reverse();//反转链表,比如lst包含1,3,5元素,运行此方法后,lst就包含5,3,1元素。

2 sort(); //list排序 

 

 

 

 

=========================================================================================================================

 

以上是关于容器list怎么 插入一个元素的主要内容,如果未能解决你的问题,请参考以下文章

STL——容器(List)List 的概念

提升指针容器插入 (ptr_list)

List容器

c++:list模拟实现“任意位置插入删除我最强ƪ(˘⌣˘)ʃ“

怎么用insert函数给map容器添加元素?

怎么用insert函数给map容器添加元素?