
链表相比于vector,优点在于方便插入和删除,缺点是随机访问比较慢。
list<数据类型> 函数名;
list<数据类型> 函数名(a,b); 设定a个空间,元素为b.
list<数据类型>函数名1(函数名2); 把动态链表2复制给动态链表1
list<数据类型>函数名1(函数名2.begin(),函数名2.end()); 动态链表二复制给动态链表1
list<数据类型>函数名1(函数名2,sizeof(函数名2)/sizeof(int));
#include
using namespace std;
int main()
{
list<int> list_a; //初始化为0
list<int> list_b(4,88); //开辟四个空间,且每个元素都为88;
list<int> list_c(list_b); // 动态链表复制给动态链表
list<int> list_d(list_b.begin(), list_b.end()); //利用迭代器的方法
int s[] = { 2,5,8 };
list<int> list_e(s, s + sizeof(s)/sizeof(int)); //普通数组复制给链表
}



函数名.size()
函数名.clear()
函数名.empty()
函数名.front()
函数名.back()
函数名.swap()
函数名.sort() 默认升序

#include
using namespace std;
int main()
{
list<int> list_a; //初始化为0
int s[4] = { 2,5,8 };
list<int> list_b(s, s + sizeof(s)/sizeof(int)); //普通数组复制给链表
int size;
size = list_a.size(); //链表长度
bool is_list = list_a.empty(); //链表是否为i空
list_b.push_front(1); //在头部插入
list_b.push_back(2); //在尾部插入
int a=list_b.front(); //获取第一个
int b=list_b.back(); //获取最后一个
// list_b.clear();
list_a.swap(list_b);
list_a.sort(); // 对链表进行排序,默认升序
return 0;
}


函数名.push_front()
函数名.push_back()
函数名.insert(函数名.begin(),n) 从哪开始 插入谁
函数名.insert(函数名.begin(),n,m) 从哪开始 插入几个 插入谁
iist〈函数类型〉 ::iterator 对象名;
对象名=函数名.begin();
函数名.insert(对象名,个数,元素)
函数名.pop_front()
函数名.pop_back()
函数名1.erase(函数名1.begin(),函数名1.end()
iist〈函数类型〉 ::iterator 对象名;
for(对象名=函数名.begin();对象名!=end();对象名++)
{
cout<<*对象名;
}

#include
#include
using namespace std;
int main()
{
list<int> list_a; //初始化为0
int s[4] = { 2,5,8 };
list<int> list_b(s, s + sizeof(s)/sizeof(int)); //普通数组复制给链表
list_b.push_front(1); //在头部插入
list_b.push_back(2); //在尾部插入
list_b.insert(list_b.begin(), 66); // 从哪插入, 插入什么
list_b.insert(list_b.end(), 88);
list_b.insert(list_b.end(),3, 100); // 从哪插入, 插入几个,插入谁
list<int>::iterator it; //利用迭代器锦新插入
it = list_b.begin();
it++;
list_b.insert(it, 5, 111);
list_b.insert(list_b.begin(), s, s + sizeof(s) / sizeof(int)); //插入普通数组
list_b.pop_front(); //删除头部一个
list_b.pop_back(); //删除尾部一个
//list_b.erase(list_b.begin(), list_b.end()); // 从头到位删除
list<int>::iterator itor;
for (itor = list_b.begin(); itor!= list_b.end(); itor++)
{
cout << *itor << " ";
}
return 0;
}




【切记呀,在list链表中只能用迭代器进行操作,而且也不能在删除的过程中使用+的符号】
#include
#include
using namespace std;
int main()
{
int i = 0;
list<int> list_a(13);
list<int>::iterator it;
for (it=list_a.begin();it!=list_a.end();it++)
{
i++;
cout << "请输入第"<< i<< "个数据" << endl;
cin >> *it;
}
for (it = list_a.begin(); it != list_a.end(); it++)
{
int j = 0;
if (*it == 3)
{
list_a.erase(it, it);
}
else
{
cout << *it << " ";
}
}
return 0;
}


制作不易,还请多多指教…