vector简单常用用法
2019-08-16 08:02:45来源:博客园 阅读 ()
vector简单常用用法
Vector是什么?
vector翻译为向量,从某种角度来说就是一个可以变长的数组,它会根据需要自动扩充数组的容量,除此之外其是一个STL中的模板类,其
还具有一些内部的方法。
Vector的使用方法
1.添加头文件
# include <iostream> # include <vector> using namespace std;
2.定义vector的对象
vector<int> name; vector<double> name;//双精度型 vector <float> name;//浮点数型 vector <char> name;//字符型
vector<vector<int>> name;//类似二维数组
3.访问vector内部元素
1)通过下标访问元素
//通过下标来访问 vector<typename> v; cout<<v[0]<<endl;
2)通过迭代器来访问
迭代器可以理解为类似指针的东西,定义其的方法。
vector<typename> ::iterator it; vector<int>::iterator it; vector<float>::iterator it;
举例
# include <iostream> # include <vector> using namespace std; int main(void) { vector<int> vi; for(int i=1;i<=5;i++) { vi.push_back(i); } //vi.begin()是取vi的首地址,it指向该地址 vector<int>::iterator it=vi.begin(); for(int i=0;i<5;i++) { cout<<*(it+i)<<endl; } }
结果
注意begin()函数返回的是vector数组的首地址,而end()并不是返回尾地址,而是末尾元素的下一个元素的地址。除此之外迭代器还实现了两种自增操作it++和++it
因此使用迭代器遍历的第二种方法。
# include <iostream> # include <vector> using namespace std; int main(void) { vector<int> vi; for(int i=0;i<5;i++) { vi.push_back(i); }
//不支持it<vi.end()的写法 for(vector<int>::iterator it=vi.begin();it!=vi.end();it++) { cout<<*it<<' '<<endl; } return 0; }
4.常用函数的使用
1)push_back()
功能:在vector的末尾后面添加一个元素
# include <iostream> # include <vector> using namespace std; int main(void) { vector<int> vi; for(int i=0;i<5;i++) { vi.push_back(i); } for(int i=0;i<5;i++) { cout<<vi[i]<<' '; } return 0; }
2)pop_back()
vector<int> vi; for(int i=0;i<3;i++) { vi.push_back(i); } //0,1,2 vi.pop_back();//0,1 for(int i=0;i<vi.size();i++) { cout<<vi[i]<<' ';//0,1 }
3)size()
vector<int> vi; int size=vi.size();//返回当前元素数目
4)clear()
vector<int> vi; for(int i=0;i<5;i++) vi.push_back(i);//依次加入0,1,2,3,4 vi.clear();//清空所有元素,size=0
5)insert()
vector<int> vi; for(int i=0;i<5;i++) { vi.push_back(i); } vi.insert(vi.begin()+2,-1);//-1插入vi[2]的位置
6)erase()
vector<int> vi; vi.erase(vi.beigin()+3);//删除单个元素,删除vi[3] vi.erase(vi.beigin()+1,vi.begin()+4);//删除多个元素,删除【first,end】之间的所有元素
原文链接:https://www.cnblogs.com/mengxiaoleng/p/11361855.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 模板类vector 2020-05-31
- C++ 模板类vector 2020-05-30
- G++编译链接的那些事!G++的特殊使用方法[常用] 2020-04-19
- 捕获未经测试的返回值 2020-04-11
- 加边的无向图--并查集 2020-04-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash