相对于vector来说,list比较复杂,允许插入,删除,List节点不保证在存储空间连续存在,所以必须有指向它的节点,它是双向环状链表,需要一个指针,API为:
push_front(x):把元素x推入(插入)到链表头部
pop_front():弹出(删除)链表首元素
merge(listref):把listref所引用的链表中的所有元素插入到链表中,可指定合并规则
splice():把list连接到pos的位置
remove(val):删除链表中所有值为val的元素
remove_if(pred):删除链表中谓词pred为真的元素
(谓词即为元素存储和检索的描述,如std::less<>,std::greater<>那么就按降序/升序排列,你也可以定义自己的谓词)
sort():根据默认的谓词对链表排序
sort(pred):根据给定的谓词对链表排序
unique():删除链表中所有重复的元素
unique(pred):根据谓词pred删除所有重复的元素,使链表中没有重复元素
注意:vector和deque支持随机访问,而list不支持随机访问,因此不支持[]访问!