List容器的存儲結(jié)構(gòu)
- list容器底層是鏈表結(jié)構(gòu)普筹,內(nèi)存不連續(xù)爆哑,不能使用[]運(yùn)算符操作
- vector是數(shù)組維護(hù)的什猖,擁有連續(xù)的內(nèi)存牧愁,可以使用[]運(yùn)算符操作
- list對比vector添加了新的方法素邪,因?yàn)榈讓邮擎湵恚钥梢詫︻^尾進(jìn)行刪除或者添加元素
#include <iostream>
#include <list>
using namespace std;
int main(){
//創(chuàng)建list容器
list<int> lst;
//在容器中添加n個(gè)元素
int a,n;
cin>>n;
for(int i=0; i<n; i++){
cin>>a;
//將輸入的數(shù)值存放到lst容器中
lst.push_back(a);
}
//迭代list容器
list<int>::iterator it = lst.begin();
for(it; it!=lst.end(); ++it){
//不能使用[]訪問猪半,it其實(shí)是個(gè)指針對象
cout<<(*it)<<endl;
}
//隊(duì)尾添加元素
cout<<"請輸入隊(duì)尾要添加的元素:"<<endl;
cin>>a;
lst.push_back(a);
//對頭添加元素
cout<<"請輸入隊(duì)頭要添加的元素:"<<endl;
cin>>a;
lst.push_front(a);
//遍歷list容器打印其中的元素
it = lst.begin();
for(it; it!=lst.end(); ++it){
cout<<(*it)<<" ";
}
//刪除元素 -- 刪除第二個(gè)元素
it = ++lst.begin();
lst.erase(it); //刪除指定元素
lst.pop_back(); //從尾部刪除元素
lst.pop_front();//從頭部刪除元素
//遍歷list容器打印其中的元素
it = lst.begin();
for(it; it!=lst.end(); ++it){
cout<<(*it)<<" ";
}
return 0;
}