STL序列容器

vector

vector的动态内存扩展:

当vector对象的存储空间不够时,vector对象会自动使用new运算符申请一块更大的内存空间,使用赋值运算符将原有的数据复制到新存储空间,并释放原有存储空间。

注意:他不是在原有空间之后接新空间,而是找更大的内存空间,然后将原来的数据拷贝到新空间,并释放原空间。

vector遍历方式

1

vector<int>v;
vector<int>::iterator itBegin=v.begin();//起始迭代器,指向容器第一个元素
vector<int>::iterator itEnd=v.end();//结束迭代器,指向容器中最后一个元素的下一个位置
while(itBegin!=itEnd)
{cout<<*itBegin<<endl;
itBegin++;
}

2

for(vector<int>:iterator it=v.begin;it!=v.end();it++)
{
cout<<*it;
}
vector容器构造

1.默认构造vector<int>v1;

2.通过区间构造vector<int>v2(v1.begin(),v1,end())//左闭右开

3.n个elem方式构造

vector<int>v3(10,100);//10个100

vector赋值操作

1.vector&operator=(const vector&vec)//重载等号操作符

vector<int>v1;

vector<int>v2;

v1=v2;

2.assign(begin,end)

vector<int>v3;
v3.assign(v1.begin(),v1.end())

3.assign(n,elem)

vector<int>v4;
v4.assign(10,100);
vector 容量和大小操作
if(v1.empty())//为真,代表容器为空
{
cout<<"容器为空";
}
cout<<v1.capacit();//容量
cout<<v1.size();//大小

容量>=大小

vector 重新指定大小,插入和删除
vector<int>v1.resize(15)

若重新指定的比原来长,默认用0填充

v1.insert(v1.begin(),100)//第一个参数是迭代器
v1.clear()等同于v1.erase(v1.begin,v1.end())//此时是空容器
vector 数据存取
vector<int>v1
for(int i=0;i<10;i++)
{v1.push_back(i);
}

1.at(int idx)

for(int i=0;i<v1.size();i++)
{cout<<v1.at(i)
}

2.operator[]//返回索引

for(int i=0;i<v1.size(),i++)
{cout<<v[i];}

v1.front//第一个元素

v1.end//最后一个元素

容器互换

通过swap实现两容器互换,达到收缩内存的效果。

减少在动态内存扩展容量时扩展的次数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值