燕莎网站建设,订阅号怎么制作,做网站买服务器,如何通过网站做网上报名系统一、vector向量容器
简介#xff1a;
Vector向量容器可以简单的理解为一个数组#xff0c;它的下标也是从0开始的#xff0c;使用时可以不用确定大小#xff0c;但是它可以对于元素的插入和删除#xff0c;可以进行动态调整所占用的内存空间#xff0c;它里面有很多系统…一、vector向量容器
简介
Vector向量容器可以简单的理解为一个数组它的下标也是从0开始的使用时可以不用确定大小但是它可以对于元素的插入和删除可以进行动态调整所占用的内存空间它里面有很多系统已经定义好了的函数方法可以直接调用进行插入元素与在尾部扩张元素…
函数方法总结
1尾部元素扩张 push_back() 2返回首元素位置的迭代器 begin(); 3返回最后一个元素的下一元素位置的迭代器 end(); 4元素的插入 insert(); 5元素的删除 ❶删除vector中迭代器所指的一个元素或一段区间中的所有元素 erase(); ❷一次性删除vector中的所有元素 clear(); 6反向排列reverse 7sort()对向量元素排序 8反向排序使用时需要在头文件进行声明#include algorithm reverse(); 9对向量元素进行排序默认为升序排列使用时需要在头文件进行声明#include algorithm sort(); 10向量大小size(); 11判断向量是否为空empty();
Vector向量容器的用法
①使用Vector向量容器需要在头文件声明 #include vector ②创建vector对象的三种形式 ⅰ vector int v; //存储整形的容器v ⅱ vector double v(10); //存储10个double类型的向量容器,这里的每一个元素都为0 ⅲ vector double v(10,12.02); //存储10个double类型的向量容器 每个值都为12.02 ③使用迭代器进行遍历 vector::iterator it; //定义迭代器变量it for(itv.begin();it!v.end();it) //从首元素到最后一个元素的下一个元素位置结束 { cout *it endl;//将这10个double类型的元素输出出来 }
1for循环遍历访问vector元素
#include iostream
#includevector
using namespace std; //因为CSTL泛型都是定义在std命名空间中所以必须在头文件声明的最后一句加上这一行int main()
{vectordouble v (10,14.12);//定义一个存储10个double类型元素的向量容器其中的每一个元素都为14.12v[5]10.14; //对v[5]进行重新赋值v[9]78.10; //对v[9]进行重新赋值for(int i0;i10;i){cout v[i] endl;//将这10个double类型的元素输出出来}return 0;
}2用迭代器访问vector元素
#include iostream
#includevector
using namespace std;int main()
{vectordouble v (10,14.12);//定义一个存储10个double类型元素的向量容器其中的每一个元素都为14.12v[5]10.14; //对v[5]进行重新赋值v[9]78.10;//对v[9]进行重新赋值vectordouble::iterator it; //定义迭代器变量itfor(itv.begin();it!v.end();it) //从首元素到最后一个元素的下一个元素位置结束{cout *it endl;//将这10个double类型的元素输出出来}return 0;
}//这里我有个疑问最后输出的v[9]是78.1而不是78.10。我也不知道为啥~~~3,一些函数方法的使用
#include iostream
#includevector
using namespace std;int main()
{vectordouble v (10,14.12);//定义一个存储10个double类型元素的向量容器其中的每一个元素都为14.12v[5]10.14; //对v[5]进行重新赋值v[9]78.10;//对v[9]进行重新赋值vectordouble::iterator it; //定义迭代器变量itfor(itv.begin();it!v.end();it) //从首元素到最后一个元素的下一个元素位置结束{cout *it endl;//将这10个double类型的元素输出出来}coutendl;v.push_back(2);//将2这个元素从尾部添加到v向量容器中去v.push_back(5);//将5这个元素从尾部添加到v向量容器中去v.insert(v.begin(),8);//在v向量容器的最前面加入一个新元素8v.insert(v.begin()2,1);//在第二个元素前插入新元素1v.insert(v.end(),3);//在v向量容器末尾追加新元素3for(itv.begin();it!v.end();it) //从首元素到最后一个元素的下一个元素位置结束{cout *it endl;//将这10个double类型的元素输出出来}coutendl;v.erase(v.begin()1,v.begin()5); //元素从0开始计数将下标为1到5元素给删除掉[1,5)for(itv.begin();it!v.end();it){cout*itendl;}coutendl;v.clear(); //将v这个向量容器给清空coutv.size()endl; //输出v这个向量容器的大小return 0;
}4reverse反向排序算法
#include iostream
#includealgorithm
#includevector
using namespace std;int main()
{vectorintv(10,1); //定义一个整形的大小为10个元素且均为1的v向量容器vectorint::iterator it; //定义迭代器变量itfor(int i0;i10;i) //将v向量容器进行重新赋值9~0;{v[i]i;}reverse(v.begin(),v.end()); //反向排列向量的从首到尾之间的元素for(itv.begin();it!v.end();it) //遍历输出v向量容器{cout*it ;}coutendl;return 0;
}5对向量容器元素排序(默认排序为升序) sort();
#include iostream
#includealgorithm
#includevector
using namespace std;
//C const 允许指定一个语义约束编译器会强制实施这个约束允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变就应该明确使用const这样可以获得编译器的帮助。
bool beyond(const int a,const int b)//自己定义比较函数要求由大到小排序
{if(a!b)return ab; //如果ab不相等的话返回a和b之间的最大值else return ab; //否则返回a和b之间的最小值
}int main()
{vectorintv(10,1); //定义一个整形的大小为10个元素且均为1的v向量容器vectorint::iterator it; //定义迭代器变量itfor(int i0;i10;i) //将v向量容器进行重新赋值9~0;{v[i]i;}sort(v.begin(),v.end()); //sort函数方法默认情况下对向量容器进行升序排列for(int j0;j10;j){coutv[j] ;}coutendl;sort(v.begin(),v.end(),beyond); //自己定义sort()排序方式for(int k0;k10;k){coutv[k] ;}coutendl;return 0;
}