一、vector向量容器

简介:
Vector向量容器可以简单的理解为一个数组,它的下标也是从0开始的,使用时可以不用确定大小,但是它可以对于元素的插入和删除,可以进行动态调整所占用的内存空间,它里面有很多系统已经定义好了的函数方法,可以直接调用进行插入元素与在尾部扩张元素…

函数方法总结:

1,尾部元素扩张 push_back()
2,返回首元素位置的迭代器 begin();
3,返回最后一个元素的下一元素位置的迭代器 end();
4,元素的插入 insert();
5,元素的删除
❶删除vector中迭代器所指的一个元素或一段区间中的所有元素 erase();
❷一次性删除vector中的所有元素 clear();
6,反向排列reverse
7,sort()对向量元素排序
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(it=v.begin();it!=v.end();it++) //从首元素到最后一个元素的下一个元素位置结束
{
cout << *it << endl;//将这10个double类型的元素输出出来
}

1,for循环遍历访问vector元素
#include <iostream>
#include<vector>
using namespace std;    //因为C++STL泛型都是定义在std命名空间中,所以,必须在头文件声明的最后一句加上这一行int main()
{vector<double> v (10,14.12);//定义一个存储10个double类型元素的向量容器,其中的每一个元素都为14.12v[5]=10.14;    //对v[5]进行重新赋值v[9]=78.10;   //对v[9]进行重新赋值for(int i=0;i<10;i++){cout << v[i] << endl;//将这10个double类型的元素输出出来}return 0;
}
2,用迭代器访问vector元素
#include <iostream>
#include<vector>
using namespace std;int main()
{vector<double> v (10,14.12);//定义一个存储10个double类型元素的向量容器,其中的每一个元素都为14.12v[5]=10.14;    //对v[5]进行重新赋值v[9]=78.10;//对v[9]进行重新赋值vector<double>::iterator it;    //定义迭代器变量itfor(it=v.begin();it!=v.end();it++)  //从首元素到最后一个元素的下一个元素位置结束{cout << *it << endl;//将这10个double类型的元素输出出来}return 0;
}//这里我有个疑问,最后输出的v[9],是78.1,而不是78.10。我也不知道为啥~~~
3,一些函数方法的使用
#include <iostream>
#include<vector>
using namespace std;int main()
{vector<double> v (10,14.12);//定义一个存储10个double类型元素的向量容器,其中的每一个元素都为14.12v[5]=10.14;    //对v[5]进行重新赋值v[9]=78.10;//对v[9]进行重新赋值vector<double>::iterator it;    //定义迭代器变量itfor(it=v.begin();it!=v.end();it++)  //从首元素到最后一个元素的下一个元素位置结束{cout << *it << endl;//将这10个double类型的元素输出出来}cout<<endl;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(it=v.begin();it!=v.end();it++)  //从首元素到最后一个元素的下一个元素位置结束{cout << *it << endl;//将这10个double类型的元素输出出来}cout<<endl;v.erase(v.begin()+1,v.begin()+5);   //元素从0开始计数,将下标为1到5元素给删除掉[1,5)for(it=v.begin();it!=v.end();it++){cout<<*it<<endl;}cout<<endl;v.clear();  //将v这个向量容器给清空cout<<v.size()<<endl;   //输出v这个向量容器的大小return 0;
}
4,reverse反向排序算法
#include <iostream>
#include<algorithm>
#include<vector>
using namespace std;int main()
{vector<int>v(10,1); //定义一个整形的大小为10个元素且均为1的v向量容器vector<int>::iterator it;   //定义迭代器变量itfor(int i=0;i<10;i++)   //将v向量容器进行重新赋值9~0;{v[i]=i;}reverse(v.begin(),v.end()); //反向排列向量的从首到尾之间的元素for(it=v.begin();it!=v.end();it++)  //遍历输出v向量容器{cout<<*it<<" ";}cout<<endl;return 0;
}
5,对向量容器元素排序(默认排序为升序) sort();
#include <iostream>
#include<algorithm>
#include<vector>
using namespace std;
//C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。
bool beyond(const int &a,const int &b)//自己定义比较函数,要求由大到小排序
{if(a!=b)return a>b; //如果a,b不相等的话返回a和b之间的最大值else return a<b;    //否则返回a和b之间的最小值
}int main()
{vector<int>v(10,1); //定义一个整形的大小为10个元素且均为1的v向量容器vector<int>::iterator it;   //定义迭代器变量itfor(int i=0;i<10;i++)   //将v向量容器进行重新赋值9~0;{v[i]=i;}sort(v.begin(),v.end());    //sort函数方法默认情况下对向量容器进行升序排列for(int j=0;j<10;j++){cout<<v[j]<<" ";}cout<<endl;sort(v.begin(),v.end(),beyond); //自己定义sort()排序方式for(int k=0;k<10;k++){cout<<v[k]<<" ";}cout<<endl;return 0;
}

vector向量容器相关推荐

  1. java中vector容器,vector向量容器(常用的使用方法总结)

    关于STL中vector容器的学习,编译运行后边看代码,边看执行结果效果更佳,还是想说看别人的代码一百遍,不如自己动手写一遍. vector向量容器不但能像数组一样对元素进行随机访问,还能随时在尾部插 ...

  2. vector向量容器元素排序与查找

    1.利用标准库函数sort()对vector进行排序 参考源码: #include <algorithm> #include <vector>vector<int> ...

  3. 4-C++ 中string类、bool类型、模板、array数组、vector向量的基础知识

    目录 继续C++ ------3 ++操作符的友元函数重载 ++操作符的成员函数重载 赋值运算符重载 类型转换运算符 运算符重载注意事项 string类 bool类型的练习 模板 1.函数模板 2.类 ...

  4. c++中的向量容器(vector)

    目录 vector的概念 vector的定义 vector常用的函数 vector的遍历和排序 vector的概念 向量容器vector 动态数组,可以在运行阶段设置长度. 具有数组的快速索引方式. ...

  5. C++ Vector(向量容器)

    Vector介绍 C++ Vector(向量容器) 是一个线性顺序结构.相当于数组,但其大小可以不预先指定,并且自动扩展.它可以像数组一样被操作,由于它的特性我们完全可以将vector 看作动态数组. ...

  6. STL(模板库)(string)(vector向量)(2019.3.19晚课习题)

    STL,标准模板库,从根本上说是一些''容器''的集合,这些容器有list,vector,set,map等.STL也是一些算法和其他一些组建的集合,STL现在也是c++的一部分,因此不用安装额外的库文 ...

  7. R语言union函数计算数据对象(vector、list、dataframe)的并集:union函数计算两个vector向量、dataframe、列表list的并集

    R语言union函数计算数据对象(vector.list.dataframe)的并集:union函数计算两个vector向量.dataframe.列表list的并集 目录

  8. R语言unique函数计算数据对象(vector、dataframe)的unique独特值:unique函数从vector向量、dataframe中删除重复项、删除dataframe重复行

    R语言unique函数计算数据对象(vector.dataframe)的unique独特值:unique函数从vector向量.dataframe中删除重复项.删除dataframe重复行 目录

  9. ITK:在向量容器上迭代

    ITK:在向量容器上迭代 内容提要 输出结果 C++实现代码 内容提要 VectorContainer的基本操作 输出结果 [1, 2] [2, 3] C++实现代码 #include "i ...

最新文章

  1. Python Qt GUI设计:QPainter、QPen、QBrush和QPixmap窗口绘图类(基础篇—17)
  2. Json.Net学习笔记
  3. 为什么static成员必须在类外初始化
  4. 关于release后retainCount还是1的问题
  5. UVA-1515 Pool construction (最小割)
  6. Android studio导入另外一个项目作为Library后出现两个启动项目等各类问题
  7. 微信小程序 navigateTo 传对象参数
  8. 【转】VTK + QT + VS 编译安装配置
  9. NGINX配置邮件代理服务器
  10. oracle apex 日志,oracle-apex - 在oracle apex报告中显示员工记录或经理记录及其员工 - SO中文参考 - www.soinside.com...
  11. 如何免费注册使用虚拟主机和二级域名建站
  12. zeal刷新不出来_热血传奇:计算怪物刷新时间,升级速度立马不同,老玩家笑出了声。...
  13. python列表用什么符号表示_python列表类型
  14. java使用itext编辑pdf,动态生成pdf文件(从利用Adobe创建pdf模板开始一步步详细介绍)
  15. Python入门50个小程序
  16. 17岁韩寒在CCTV《对话》舌战群吊的视频
  17. 【老卫搞机】136期:华为开发者联盟社区2022年度战码先锋2期开源贡献之星
  18. DBCA静默安装Oracle数据库
  19. 我是这么破解wordpress付费主题reborn的
  20. Apache APISIX 玩转 Tongsuo 国密插件

热门文章

  1. 一个页面从输入URL到加载显示完成,发生了什么?
  2. call/apply以及this指向的理解
  3. CSS Grid网格布局全攻略
  4. mysql数据库(3)-查询
  5. 浅谈我所见的CSS命名风格
  6. Linux Shell——函数的使用
  7. 第八章 CTE 递归 及 分组汇总 高级部分(多维数据集)
  8. spring的基本知识
  9. flask 知识点总结
  10. Javascript--File对象