这篇文章主要介绍了SpringBoot中动态数组类vector有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
vector是个模板类,提供了动态数组的通用功能,特点如下:
(1)在数组末尾添加(删除)元素所需的时间是固定的。
(2)在数组中间添加(删除)元素所需的时间与该元素后面的元素个数成正比
(3)存储的元素是动态的,而vector类负责管理内存。
下面给出了五种初始化(实例化)的方法:
#include<iostream>#include<vector>using namespace std;int main(){ //1.初始化一个动态数组dyarr1 vector <int> dyarr1;//2.初始化一个动态数组dyarr2,数组的初始长度是10 vector <int> dyarr2(10);//3.初始化一个动态数组dyarr3,包含10个元素,每个元素都是1 vector <int> dyarr3(10,1);//4.将动态数组dyarr3复制到dyarr4 vector <int> dyarr4(dyarr3);//5.使用迭代器,将dyarr4中的前5个元素复制到dyarr5 vector <int> dyarr5(dyarr4.begin(),dyarr4.begin()+5);for(int i=0;i<dyarr5.size();i++) cout<<dyarr3[i]<<endl;return 0;}
注意:vector <类型> dyarr //这里的类型不仅是int,也可以是float、类、vector等
//在数组dyarr1后添加一个元素50dyarr1.push_back(50)
push_back可以在末尾插入元素。如果要在中间插入元素,可以使用insert()
下面举例三种插入方法:
#include<iostream>#include<vector>using namespace std;int main(){ vector <int> dyarr1(5,10);//1.在数组dyarr1前插入20 dyarr1.insert(dyarr1.begin(),20);//2.在数组dyarr1末尾插入两个30 dyarr1.insert(dyarr1.end(),2,30);//3.将数组dyarr2插入到dyarr1第一个元素的后面(后面的元素依次后移) vector <int> dyarr2(2,50); dyarr1.insert(dyarr1.begin()+1,dyarr2.begin(),dyarr2.end());//显示dyarr1的每一个元素for(int i=0;i<dyarr1.size();i++) cout<<dyarr1[i]<<">;}
pop_back将元素从vector末尾删除所需的时间是固定的,不随存储元素的个数而变。
//删除dyarr1最后一个元素dyarr1.pop_back();
#include<iostream>#include<vector>using namespace std;int main(){ vector <int> dyarr1(5,10); //初始化数组5个元素都是10 //1.用下标运算符[]以数组方式访问for(int i=0;i<dyarr1.size();i++) cout<<dyarr1[i]<<" "; cout<<endl;//2.用成员函数at()访问for(int i=0;i<dyarr1.size();i++) cout<<dyarr1.at(i)<<" "; cout<<endl;//3.使用迭代器意义访问打印出来(类似于指针) vector <int>::iterator Locator=dyarr1.begin();while(Locator!=dyarr1.end()){ cout<<*Locator<<" ";++Locator;} return 0;}
deque类与vector类非常类似,但是支持在数组的开头和末尾插入或删除元素。
使用前需要包含头文件:
#include <deque>
(1)使用push_back和pop_back在末尾插入和删除元素
deque <int> dyarr1(5,10); //初始化数组5个元素都是10 dyarr1.push_back(100);dyarr1.pop_back();
(2)使用push_front和pop_front在开头插入和删除元素
dyarr1.push_front(100);//在数组开头插入100dyarr1.pop_front();//删除数组开头的元素
感谢你能够认真阅读完这篇文章,希望小编分享的“SpringBoot中动态数组类vector有什么用”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。