数据结构-练习 18 vector && list

2014-11-24 00:40:32 · 作者: · 浏览: 3

vector的用法
vector包括的函数为:

写了一段程序,测试一下几个常用的函数:

[cpp]
#include
#include
#include
#include
using namespace std;
int main()
{
//初始化
vector a(3,7);
cout<<"输出元素";
///迭代器
for(vector::iterator itr=a.begin();itr cout<<*itr;
cout<
//测试是否为空 empty()
if(!a.empty())
cout<<"此容器的大小为:"< else
cout<<"元素为空";
cout<
//清楚元素clear()
a.clear();

if(!a.empty())
cout<<"容器里的元素被clear()清理完毕"< //调整容器的大小 resize

a.resize(5);
cout<<"此容器的大小重新调整为:"<
cout<<"默认的5个元素大小为:";
for(vector::iterator it=a.begin();it cout<<*it;

a.push_back(3);
a.push_back(4);

//返回第一个元素
cout<<"返回第一个元素"<
cout<
//pop返回
a.pop_back();
cout<<"pop_back后,容器的大小为:"< for(vector::iterator it=a.begin();it cout<<*it;
cout<
a.assign(4,5);//不会改变capacity,会改变size
cout<<"capacity:"< a[0]=2;
cout<<"显示第0个和第3个位置的元素,验证[]和assign的赋值功能:"<
cout<<"front()返回最后一个元素"<
vector::iterator it=a.begin();
a.erase(it);
cout<<"erase后的元素为:";
for(vector::iterator it=a.begin();it cout<<*it;
a.swap(vector());
return 0;
}

#include
#include
#include
#include
using namespace std;
int main()
{
//初始化
vector a(3,7);
cout<<"输出元素";
///迭代器
for(vector::iterator itr=a.begin();itr cout<<*itr;
cout<

//测试是否为空 empty()
if(!a.empty())
cout<<"此容器的大小为:"< else
cout<<"元素为空";
cout<

//清楚元素clear()
a.clear();

if(!a.empty())
cout<<"容器里的元素被clear()清理完毕"< //调整容器的大小 resize

a.resize(5);
cout<<"此容器的大小重新调整为:"<

cout<<"默认的5个元素大小为:";
for(vector::iterator it=a.begin();it cout<<*it;

a.push_back(3);
a.push_back(4);

//返回第一个元素
cout<<"返回第一个元素"<

cout<

//pop返回
a.pop_back();
cout<<"pop_back后,容器的大小为:"< for(vector::iterator it=a.begin();it cout<<*it;
cout<

a.assign(4,5);//不会改变capacity,会改变size
cout<<"capacity:"< a[0]=2;
cout<<"显示第0个和第3个位置的元素,验证[]和assign的赋值功能:"<

cout<<"front()返回最后一个元素"<

vector::iterator it=a.begin();
a.erase(it);
cout<<"erase后的元素为:";
for(vector::iterator it=a.begin();it cout<<*it;
a.swap(vector());
return 0;
}
测试结果

\

list的用法
与vector相比,list没有capacity,原因是因为:list不需要对内存重新全部分配,list用链表的,每增加一个元素都要新开辟一个元素,然后插入到list中,记住list是双链表。list多了一个pash_front和pop_front。

[cpp]
#include
#include
using namespace std;
int main()
{
//定义LISTINT
typedef list LISTINT;
typedef list LISTCHAR;

LISTINT list_int(3);
list_int.assign(4,5);
list_int.push_back(6);
list_int.push_front(10);

list_int.push_front(1);
list_int.pop_front();
list_int.pop_back();
list_int.push_back(6);
for(LISTINT::iterator itr=list_int.begin();itr!=list_int.end();++itr)
cout<<*itr<<",";
cout< for(LISTINT::reverse_iterator itr=list_int.rbegin();itr!=list_int.rend();++itr)
cout<<*itr<<",";
cout< list_int.erase(--list_int.end());
list_int.sort();
for(LISTINT::iterator itr=list_int.begin();itr!=list_int.end();++itr)
cout<<*itr<<",";

return 0;
}

#include
#include
using namespace std;
int main()
{
//定义LISTINT
typedef list LISTINT;
typedef list LISTCHAR;

LISTINT list_int(3);
list_int.assign(4,5);
list_int.push_back(6);
list_int.push_front(10);

list_int.push_front(1);
list_int.pop_front();
list_int.pop_back();
list_int.push_back(6);
for(LISTINT::iterator itr=list_int.begin();itr!=list_int.end();++itr)
cout<<*itr<<",";
cout< for(LISTINT::reverse_iterator itr=list_int.rbegin();itr!=list_int.rend();++itr)
cout<<*itr<<",";
cout< list_int.erase(--list_int.end());
list_int.sort();
for(LISTINT::iterator itr=list_int.begin();itr!=list_int.end();++itr)
cout<<*itr<<",";

return 0;
}