list属于双端链表,
优点:
1、采用动态存储分配,不会造成内存的浪费和溢出
2、链表执行插入和删除操作十分方便,修改指针即可,不需要移动大量元素
缺点:
链表灵活,但是空间和时间额外耗费较大
List有一个重要的性质,插入操作和删除操作都不会造成原有List迭代器的失效,这在vector是不成立的。
#include <iostream>
#include <list>
using namespace std;
void show(list<int> value)
{
list<int>::iterator Lbegin = value.begin();
list<int>::iterator Lend = value.end();
//不支持[]和at访问
while (Lbegin!=Lend)
{
cout << *Lbegin << ",";
Lbegin++;
}
cout << endl << "-------------" << endl;
}
int main()
{
list<int> L1;
L1.push_back(1);
L1.push_back(2);
L1.push_back(3);
L1.push_back(4);
show(L1);
//赋值
list<int> L2;
L2.assign(L1.begin(), L1.end());
show(L2);
//交换
list<int> L3;
L2.swap(L3);//L2变为空,L2中原有内容存入L3中
show(L2);
//
L3.pop_back();//删除最后一个元素
L3.push_front(10);//从容器的开头移除第一个元素
L3.pop_front();//删除第一个元素
L3.insert(L3.begin(), 100);//在头插入100
show(L3);
L3.erase(L3.begin());//删除
L3.remove(200);//删除200
}
本文介绍了C++中的List数据结构,强调了其动态存储分配、插入和删除操作的灵活性,以及与Vector的区别。通过示例展示了如何使用List进行操作,包括赋值、交换、增删元素等。
1543

被折叠的 条评论
为什么被折叠?



