(一)list的插入
1.list.insert(pos,elem);//在pos位置插入一个elem元素的拷贝,返回新数据的位置
#include <iostream>
#include <list>
using namespace std;
int main()
{
list<int> lst;
lst.push_back(10);
lst.push_back(30);
lst.push_back(40);
list<int>::iterator it;
it=lst.begin() ;
it++;
lst.insert(it,20);
for(it=lst.begin();it!=lst.end();it++)
{
cout<<*it<<" ";
}
cout<<endl;
return 0;
}
#include <iostream>
#include <list>
using namespace std;
int main()
{
list<int> lst;
lst.push_back(10);
lst.push_back(30);
lst.push_back(50);
list<int>::iterator it;
for(it=lst.begin();it!=lst.end();it++)
{
if(*it==50)
break;
}
if(it!=lst.end())
{
lst.insert(it,40);
}
for(it=lst.begin();it!=lst.end();it++)
{
cout<<*it<<" ";
}
cout<<endl;
return 0;
}
2.list.insert(pos,n,elem);//在pos位置插入n个elem数据,无返回值
#include <iostream>
#include <list>
using namespace std;
int main()
{
list<int> lst;
lst.push_back(10);
lst.push_back(30);
lst.push_back(50);
list<int>::iterator it = lst.end();
lst.insert(it, 3, 70);
for(it = lst.begin(); it != lst.end(); ++it)
{
cout << *it << " ";
}
cout << endl;
return 0;
}
3.list.insert(pos,beg,end);//在pos位置插入[beg,end)区间的数据,无返回值
#include <iostream>
#include <list>
using namespace std;
int main()
{
list<int> lst, lst1;
lst.push_back(10);
lst.push_back(30);
lst.push_back(50);
lst1.push_back(20);
lst1.push_back(40);
list<int>::iterator it;
for(it = lst.begin(); it != lst.end(); ++it)
{
cout << *it << " ";
}
cout << endl;
lst.insert(lst.end(), lst1.begin(), lst1.end());
for(it = lst.begin(); it != lst.end(); ++it)
{
cout << *it << " ";
}
cout << endl;
return 0;
}
(二)list的删除
1.list.clear(); //移除容器的所有数据
#include <iostream>
#include <list>
using namespace std;
int main()
{
list<int> lst, lst1;
lst.push_back(10);
lst.push_back(30);
lst.push_back(50);
lst.push_back(70);
lst.push_back(90);
lst.push_back(110);
lst.push_back(110);
lst.push_back(110);
list<int>::iterator it;
lst.clear();
cout<<"empty?="<<lst.empty() <<endl;
return 0;
}
2.list.erase(beg,end);//删除[beg,end)区间的数据,返回下一个数据的位置,list.erase(pos);//删除pos位置的数据,返回下一个数据的位置
#include <iostream>
#include <list>
using namespace std;
int main()
{
list<int> lst, lst1;
lst.push_back(10);
lst.push_back(30);
lst.push_back(50);
list<int>::iterator it;
it=lst.begin() ;
it++;
it++;
lst.erase(it);
for(it = lst.begin(); it != lst.end(); ++it)
{
cout << *it << " ";
}
cout << endl;
return 0;
}
3.Ist.remove(elem)://删除容器中所有与elem值匹配的元素
#include <iostream>
#include <list>
using namespace std;
int main()
{
list<int> lst, lst1;
lst.push_back(10);
lst.push_back(30);
lst.push_back(50);
lst.push_back(70);
lst.push_back(90);
lst.push_back(110);
lst.push_back(110);
lst.push_back(110);
list<int>::iterator it;
lst.remove(110);
for(it = lst.begin(); it != lst.end(); ++it)
{
cout << *it << " ";
}
cout << endl;
return 0;
}
(三)list的反转
#include <iostream>
#include <list>
using namespace std;
int main()
{
list<int> lst, lst1;
lst.push_back(10);
lst.push_back(30);
lst.push_back(50);
lst.push_back(70);
lst.push_back(90);
lst.push_back(110);
list<int>::iterator it;
lst.reverse() ;
for(it=lst.begin() ;it!=lst.end() ;it++)
{
cout<<*it<<" ";
}
cout<<endl;
return 0;
}