我们需要明白vector这是个什么??

答:通俗而言——一个长度根据所需自动改变的数组,同时还可以用于以邻接表的方式进行存储图

使用前提:

头文件#include <vector>

使用C时,还应该加入using namespace std;

声明调用方式:

vector<typename> name;

typename 可以是任何基本类型,各种数、字符、结构体、STL容器(vector、set、queue....)

注意!!如果typename是vector时">>"之间应有空格!!

vector<vector<int>_>vi;//该_为空格!!!!!!

以下是代码其中一一解释了常用函数的作用,这些注释也是代码中的重难点!

#include <iostream>
#include <vector>using namespace std;//vector 应用解析
//vector<typename> vi;
//vector<vector<int> >vi;两个>>之间应有空格
//vector<typename> vi[ArraySize];理解为纵横向都可以变的二维数组
//vector<typename>::iterator it = vi.begin();指将第一个元素的特别地址赋给迭代器  用*(it);进行取值
//vi.push_back();
//vi.pop_back();
//vi.size();    vi.clear(); //size是长度,clear是清空//vi.insert(it,x);用一个迭代器it插入一个元素x  vi.erase(vi.begin()+3);  vi.erase(vi.begin()+1,vi.begin()+3);
//vi.begin()+i; 相当于迭代器(特别的地址),仅可以在vector和string中使用
//vi.end();  指尾元素后的另一个
//vi[i]与*(vi.begin()+i)是等价的int main()
{vector<int> vi;for(int i = 1;i<=5;i++){vi.push_back(i);}vector<int>::iterator it = vi.begin();//三种取值方式//(1)cout<<"用第一种方式输出:"<<endl;for(int i = 0;i<vi.size();i++){cout<<vi[i]<<" ";}cout << endl;//(2)cout<<"用第二种方式输出:"<<endl;for(int i=0;i<vi.size();i++){cout<<*(it+i)<<" ";}cout << endl;//(3)cout<<"用第三种方式输出:"<<endl;for(vector<int>::iterator it1 = vi.begin() ; it1!=vi.end() ; it1++){//不可用 it1<vi.end();cout<<*(it1)<<" ";}cout<<endl;//删除尾元素vi.pop_back();cout<<"删除尾元素后:"<<vi.size()<<endl;vi.insert(vi.begin()+2,47);vi.erase(vi.begin()+1);cout<<"删除尾元素,并在第三个元素位置加入47,而后删除第二个元素,后的输入结果:"<<endl;for(int i = 0;i<vi.size();i++){cout<<vi[i]<<" ";}cout<<endl;vi.erase(vi.begin()+1,vi.begin()+3);cout<<"删除区间[第二个,第四个元素)后长度"<<vi.size()<<"以及其结果"<<endl;for(int i = 0;i<vi.size();i++){cout<<vi[i]<<" ";}cout<<endl;vi.clear();cout<<"清空后的长度"<<vi.size()<<endl;return 0;
}

最后我从网上找了一下stl中vector的其他一些函数(仅供参考):

c++ stl容器set成员函数:begin()--返回指向第一个元素的迭代器

c++ stl容器set成员函数:clear()--清除所有元素

c++ stl容器set成员函数:count()--返回某个值元素的个数

c++ stl容器set成员函数:empty()--如果集合为空,返回true

c++ stl容器set成员函数:end()--返回指向最后一个元素的迭代器

c++ stl容器set成员函数:equal_range()--返回集合中与给定值相等的上下限的两个迭代器

c++ stl容器set成员函数:erase()--删除集合中的元素

c++ stl容器set成员函数:find()--返回一个指向被查找到元素的迭代器

c++ stl容器set成员函数:get_allocator()--返回集合的分配器

c++ stl容器set成员函数:insert()--在集合中插入元素

c++ stl容器set成员函数:lower_bound()--返回指向大于(或等于)某值的第一个元素的迭代器

c++ stl容器set成员函数:key_comp()--返回一个用于元素间值比较的函数

c++ stl容器set成员函数:max_size()--返回集合能容纳的元素的最大限值

c++ stl容器set成员函数:rbegin()--返回指向集合中最后一个元素的反向迭代器

c++ stl容器set成员函数:rend()--返回指向集合中第一个元素的反向迭代器

c++ stl容器set成员函数:size()--集合中元素的数目

c++ stl容器set成员函数:swap()--交换两个集合变量

c++ stl容器set成员函数:upper_bound()--返回大于某个值元素的迭代器

c++ stl容器set成员函数:value_comp()--返回一个用于比较元素间的值的函数

C++ STL函数库 vector(henu.hjy)相关推荐

  1. C++ STL函数 string(henu.hjy)

    string是字符串 前提:#include <string> (C中应加入using namespace std:) 注释中给了各种string函数的用法,大家可以借鉴一下 #inclu ...

  2. C++ STL函数 map (henu.hjy)

    map是一个映射,具有数组不具有的优势(注释1) 在代码开头注释中解释了map中的常用函数以及遍历写入方法. 一下代码请参考: #include <iostream> #include & ...

  3. C++ STL函数 queue (henu.hjy)

    队列是一种受限制的数据结构,在注释中介绍了queue相关函数的用法.可以copy代码到编译器结合注释,理解队列. 另外队列是一种先进先出的操作,而且仅能在一端进一端出 #include <ios ...

  4. C++ STL函数库 pair (henu.hjy)

    就用法见注释,有需要可复制到编译器运行 #include <iostream> #include <utility> //当然也可以用map #include <stri ...

  5. C++ STL函数库 stack (henu.hjy)

    栈是一个先进后出的限制性的数据结构,注释中列出了常见的stack的函数 #include <iostream> #include <stack>using namespace ...

  6. STL函数库的讲解(1)

    1.什么是STL? STL英文全称 standard template library,中文可译为标准模板库或者泛型库,其包含有大量的模板类和模板函数,是 C++ 提供的一个基础模板的集合,用于完成诸 ...

  7. STL标准库vector笔记

    vector::assign()用法: 1 #include "stdafx.h" 2 #include <iostream> 3 #include <vecto ...

  8. C++算法练习题 T1(henu.hjy)

    这个题有些尴尬,我在蓝桥官网并没有通过验证,但是给的样例输出通过并正确了,我不太明白哪里出错了,如果有看到的朋友可以在留言给我,万分感谢!!! 问题描述 给两组数,各n个. 请调整每组数的排列顺序,使 ...

  9. C++ STL函数 结构体数组sort()排序(henu.hjy)

    对于C++中sort()需要加入 #include <algorithm>该头文件 sort(首地址[必填],尾地址[必填],排序cmp函数[选填]) sort对于基本数据类型默认从小到大 ...

最新文章

  1. 操作系统学习笔记 第五章:文件管理(王道考研)
  2. 深度学习--TensorFlow(7)拟合(过拟合处理)(数据增强、提前停止训练、dropout、正则化、标签平滑)
  3. R语言使用vtreat包的designTreatmentsC函数构建数据预处理计划、vetreat包的score frame(新生成数据变量的指南)、以及score frame字段说明
  4. logo qt添加_linux下如何给qt程序添加图标?
  5. python基础:序列(列表、元组、字符串)、函数、字典、集合
  6. IntelliJ IDEA常用快捷键——基于Eclipse
  7. 最详细的R-CNN论文笔记
  8. postman断言作用及怎么使用
  9. jsp怎么调用servlet_Servlet简述
  10. openwrt 程序C++ hello world的ipk软件包(三)
  11. 一文讲清微服务架构、分布式架构、微服务、SOA
  12. PPL文档——Excel制作的甘特图加上动态今日线
  13. 制作u盘winpe启动盘_U启大师U盘启动盘制作教程(装机版)
  14. Android jetpack DataBinding 与RecyclerView
  15. CSGO社区服搭建记录
  16. 什么是企业微信scrm系统?企业微信SCRM系统有什么功能?企业微信SCRM系统推荐。
  17. 八皇后问题——列出所有的解,可推至N皇后
  18. wps打开文件提示被锁定怎么办
  19. ros wiki learning
  20. 安卓木马demo_小demo 旋转木马

热门文章

  1. 近三十而立的我们,到底是先成家后立业还是先立业再成家?
  2. ftp协议c语言实现-linux平台
  3. shell脚本编程学习笔记6(xdl)——字符串截取命令
  4. 网易嵌入式面试 2015年8月19日晚网易电话面试
  5. 【手机远程连接电脑or服务器】【向日葵远程连接版】
  6. Android TabLayout修改指示器宽度方案汇总
  7. 鲜花静态HTML网页作业作品 大学生鲜花网页设计制作成品 简单DIV CSS布局网站
  8. 用计算机c语言输出你好,编写第一个C语言程序 - Hello World
  9. 前端学习CSS篇(三)
  10. 端到端无人驾驶文献学习:End-to-end Interpretable Neural Motion Planner