#include<iostream>
#include<vector>
using namespace std;
int main()
{
// 删除元素的几个操作:
int shuzu[]={1,2,3,4,5,6,7,8,9,10};
vector<int> Vsz(shuzu, shuzu+10);
vector<int>::iterator tdqa;
cout<<" before delete: "<<endl;
for(tdqa = Vsz.begin() ; tdqa != Vsz.end() ; ++tdqa)
{
cout<<(*tdqa)<<" ";
// 先输出容器里全部元素。
}
Vsz.pop_back(); // 删除容器里的最后一个元素;若容器为空时,该操作的行为没有定义。
/*
------#include<deque>---------
*******************
deque<int> Vsz(shuzu, shuzu+10);
deque<int>::iterator tdqa;
cout<<" before delete: "<<endl;
for(tdqa = Vsz.begin() ; tdqa != Vsz.end() ; ++tdqa)
{
cout<<(*tdqa)<<" ";
}
Vsz.pop_front();
// vector不支持pop_front()操作,删除容器里的第一个元素;若容器为空时,该操作的行为没有定义。
Vsz.pop_back();
*/
cout<<endl<<" the last element are deleted : "<<endl;
for(tdqa = Vsz.begin() ; tdqa != Vsz.end() ; ++tdqa)
{
cout<<(*tdqa)<<" ";
}
tdqa = Vsz.begin();
// tdqa指向Vsz里现存的第一个元素。
Vsz.erase( Vsz.erase(tdqa+1));
// 删除Vsz里现存的第二,第三元素。
cout<<endl<<" the second and third element are deleted : "<<endl;
for(tdqa = Vsz.begin() ; tdqa != Vsz.end() ; ++tdqa)
{
cout<<(*tdqa)<<" ";
}
/*
代码 Vsz.erase( Vsz.erase(tdqa+1));实际调用了两次erase函数,
以第一次调用的返回值作为第二次调用的实际参数,从而删除两个相邻的元素。
Rqname.erase(tdq);
功能:
1.返回被删除元素的下一个元素的迭代器。
2.删除tdq所指向的元素。
*/
Vsz.erase(Vsz.begin(),Vsz.begin()+3);
// 删除容器现有的前三个元素。
cout<<endl<<" three element at front are deleted : "<<endl;
for(tdqa = Vsz.begin() ; tdqa != Vsz.end() ; ++tdqa)
{
cout<<(*tdqa)<<" ";
}
/*
代码 Vsz.erase(Vsz.begin(),Vsz.begin()+3);
删除容器现有的前三个元素。
Rqname.erase(b,e);
// b,e为迭代器。
功能:
1.删除b,e所指向范围:"[b,e)"的所以元素,
2.返回被删除元素段的下一个元素。
*/
Vsz.clear();
// 只有删除容器里所以元素的功能,没有像返回值等其他功能。
cout<<endl<<" after clear : "<<endl;
if(Vsz.empty())
{
cout<<" no element in double-ended vector "<<endl;
}
return 0;
}
容器添加元素操作
最新推荐文章于 2024-02-17 15:20:02 发布