ai免费模板网站,网站后台关键词怎么设置,网站嵌入js,成都建模培训机构2019独角兽企业重金招聘Python工程师标准 /*-
* 文件名 #xff1a;STL_con_ite_6.cpp
* 开发人员#xff1a;袁培荣
* 当前版本#xff1a;1.0.0.2595
* 创建时间#xff1a;2012-05-24
* 修改时间#xff1a;2012-05-24
* 功能… 2019独角兽企业重金招聘Python工程师标准 /*-
* 文件名 STL_con_ite_6.cpp
* 开发人员袁培荣
* 当前版本1.0.0.2595
* 创建时间2012-05-24
* 修改时间2012-05-24
* 功能说明STL 容器和迭代器连载6_顺序容器的操作3
* 版权说明版权所有 袁培荣 YuanPeirong
* 编译环境Windows 7(x64) SP1 简体中文专业版
* 编译器 Visual Studio 2010 SP1(中文旗舰版)MinGW 20120426 GNU GCC 4.6.2Visual C 6.0 SP6(中文企业版)
- */#include iostream
#include vector
#include list
#include deque
#include stringusing std::cout;
using std::endl;
using std::vector;
using std::list;
using std::deque;
using std::string;int main(int argc, char* argv[])
{//下面来介绍删除容器内元素的相关操作//先定义一个容器并添加101个元素。vectorint v1;for(int i0; i!101; i) //C程序员习惯于用i!101而不是i101v1.push_back(i);cout在所有删除操作前v1.size()v1.size()endl;//第一种方法://erase(p) :删除迭代器p所指向的元素//返回指向被删除元素的下一位置的迭代器。//注意:p必须真实地指向实际存在的元素。cout第一种方法:endl;cout删除前v1的第96个元素值是(方法1输出)*(v1.begin()95)endl;cout删除前v1的第96个元素值是(方法2输出)v1[95]endl;//我们把第96个元素删除vectorint::iterator iter1v1.erase(v1.begin()95);//验证:cout删除后v1.size()v1.size()endl;cout删除后v1的第96个元素值是(方法1输出)*iter1endl;cout删除后v1的第96个元素值是(方法2输出)v1[95]endl;//第二种方法://erase(b,e) :删除迭代器b,e所指向的元素形成的左闭合区间//返回指向被删除的最后一个元素的下一位置的迭代器。cout第二种方法:endl;cout删除前v1的第81个元素值是*(v1.begin()80)endl;cout删除前v1的第82个元素值是*(v1.begin()81)endl;cout删除前v1的第83个元素值是*(v1.begin()82)endl;//我们把第81,82,83三个元素删除iter1v1.erase(v1.begin()80, v1.begin()83);//验证:cout删除后v1.size()v1.size()endl;cout删除后v1的第81个元素值是(方法1输出)*iter1endl;cout删除后v1的第81个元素值是(方法2输出)*(v1.begin()80)endl;cout删除后v1的第82个元素值是*(v1.begin()81)endl;cout删除后v1的第83个元素值是*(v1.begin()82)endl;//第三种方法://pop_back() 删除容器的最后一个元素返回void类型cout第三种方法:endl;cout删除前v1的最后一个元素值是*(v1.end()-1)endl;if(v1.size()!0) //防止容器为空时删除操作引发错误v1.pop_back();//验证:cout删除后v1.size()v1.size()endl;cout删除后v1的最后一个元素值是*(v1.end()-1)endl;//第四种方法://pop_front() 删除容器的第一个元素返回void类型//值得注意的是这种方法只能用于list和deque容器listint l1(3,0);*l1.begin()0; //为便于区分元素将各修改成不相同//下面指出修改list容器的元素时的两种错误//l1[1]1; //list容器不支持l1[0]这样的下标访问下面会讲//*(l1.begin()2)2; //list容器的迭代器不能与数值相加复习一下前面listint::iterator iter2l1.begin();iter2; //迭代器的操作是对所有容器都支持的*(iter2)1;iter2;*(iter2)2;cout第四种方法:endl;cout删除前l1.size()l1.size()endl;cout删除前l1的第一个元素值是*l1.begin()endl;if(!l1.empty()) //防止容器为空时删除操作引发错误l1.pop_front(); //empty()用来判断容器是否为空下面会讲//验证:cout删除后l1.size()l1.size()endl;cout删除后l1的第一个元素值是*l1.begin()endl;//虽然第四种方法pop_front(t)只支持list和deque容器//但我们用第一种方法的一个特例就能和做到第二种方法同样的效果//例如:cout用第一种方法的特例实现第四种方法endl;cout删除前v1.size()v1.size()endl;cout删除前v1的第一个元素值是*v1.begin()endl;v1.erase(v1.begin());//验证:cout删除后v1.size()v1.size()endl;cout删除后v1的第一个元素值是*v1.begin()endl;//这样我们可以为不支持第四种方法的容器扩展这一种方法//第五种方法://clear() 删除容器内的所有元素返回void类型cout第五种方法:endl;cout清空前v1.size()v1.size()endl;cout清空前l1.size()l1.size()endl;//清空v1和l1v1.clear();l1.clear();//验证:cout清空后v1.size()v1.size()endl;cout清空后l1.size()l1.size()endl;return 0;
}//
//运行结果:
//
// 在所有删除操作前v1.size()101
// 第一种方法:
// 删除前v1的第96个元素值是(方法1输出)95
// 删除前v1的第96个元素值是(方法2输出)95
// 删除后v1.size()100
// 删除后v1的第96个元素值是(方法1输出)96
// 删除后v1的第96个元素值是(方法2输出)96
// 第二种方法:
// 删除前v1的第81个元素值是80
// 删除前v1的第82个元素值是81
// 删除前v1的第83个元素值是82
// 删除后v1.size()97
// 删除后v1的第81个元素值是(方法1输出)83
// 删除后v1的第81个元素值是(方法2输出)83
// 删除后v1的第82个元素值是84
// 删除后v1的第83个元素值是85
// 第三种方法:
// 删除前v1的最后一个元素值是100
// 删除后v1.size()96
// 删除后v1的最后一个元素值是99
// 第四种方法:
// 删除前l1.size()3
// 删除前l1的第一个元素值是0
// 删除后l1.size()2
// 删除后l1的第一个元素值是1
// 用第一种方法的特例实现第四种方法
// 删除前v1.size()96
// 删除前v1的第一个元素值是0
// 删除后v1.size()95
// 删除后v1的第一个元素值是1
// 第五种方法:
// 清空前v1.size()95
// 清空前l1.size()2
// 清空后v1.size()0
// 清空后l1.size()0
// 转载于:https://my.oschina.net/u/186539/blog/59452