本文介绍STL中的list的用法示例。下面是list的知识点:
1 list 是一个双向链表容器 可以高效的进行插入与删除 不可以随机存储元素-》不支持at.(pos)函数和[]操作符;
2 list 的迭代器 可以++ ——,但不可以 it+3;
3 list 结点序号从0号位置开始;
4 list 的插入:当指针指向哪里,插入的元素就插入到该位置。原来该位置的元素后移。
下面是示例代码:
#include "iostream"
using namespace std;
#include "list"
void main61()
{
list<int> l1;
cout << l1.size() <<endl;
for (int i=0;i<10;i++)
{
l1.push_back(i);// 尾部插入元素
}
cout << l1.size() <<endl;
list<int>::iterator it = l1.begin();
while(it != l1.end())
{
cout << *it << " ";
it++;
}
cout << endl;
// list 不能随机访问 it+3
it = l1.begin();
it++;
//it = it+2; //错误
l1.insert(it,100);//100插入到 原来1的位置
for (list<int>::iterator it=l1.begin();it != l1.end();it++)
{
cout << *it << " ";
}
cout << endl;
}
void printL(list<int> &l)
{
for (list<int>::iterator it=l.begin();it != l.end();it++)
{
cout << *it << " ";
}
cout << endl;
}
// list 删除
void main62()
{
list<int> l1;
cout << l1.size() <<endl;
for (int i=0;i<10;i++)
{
l1.push_back(i);// 尾部插入元素
}
cout << l1.size() <<endl;
list<int>::iterator it1 = l1.begin();
list<int>::iterator it2 = l1.begin();
it2++;
it2++;
it2++;
l1.erase(it1,it2);
printL(l1);
l1.insert(l1.begin(),100);
l1.insert(l1.begin(),100);
l1.insert(l1.begin(),100);
l1.erase(l1.begin());
l1.remove(100);// 删除所有100该值
printL(l1);
}
void main()
{
//main61();
main62();
cout << "hello..."<< endl;
system("pause");
}