向量vector理解
来源:互联网 发布:杭州java平均薪资 编辑:程序博客网 时间:2024/05/29 18:14
- vector是一种向量类型,它是一种对象实体,可以容纳许多种其他类型实体,称其为容器。vector是c++STL的重要一员,使用时包含头文件#include<vector>
- vector可以有四种定义方式
(1)vector<int> a(10);//定义了10个整数元素的向量,但并没有给出初值,vector<T>是模板形式, T可以是任何合法的数据类型
(2)vector<int> b(10, 1);//定义了10个整数元素的向量,且每个元素的初值为1,而这种形式是数组难以做到的,数组只能通过循环来成批的赋给相同的初值
(3)vector<int> c(b);//用另一个现成的向量来创建一个向量
(4)vector<int> d(b.begin(), b.begin+3);//定义了其值依次为b向量中第0个到第二个(共3个)元素的向量
3.vector输出元素的两种循环方式,例
int a[7] = {1,2,5,3,7,9,8};
voctor<int> v(a, a + 7);//数组的长度也可由sizeof(a)/sizeof(a[0])确定
//循环方式一
for(int i = 0; i < v.size(); i++)
cout << v[i] << " ";
//循环方式二
for(vector<int> :: iterator it = v.begin(); it != v.end(); it++)
cout << *it << " ";//*it是指针间访形式,他的意义是it指向的元素值
向量在c++编程中是一种是频率很高的数据类型,不仅仅是因为数据的顺序排列性在生活中常见,还因为向量有一些整体赋值、判空和元素添加等,特别是向量可以自动伸展,容量可以自动增大,使得对一些不确定数量的顺序性操作数据,带来了极大的方便
<span style="font-size:14px;"> 1>. a.size() //获取向量中的元素个数 2>. a.empty() //判断向量是否为空 3>. a.clear() //清空向量中的元素 4>. 复制 a = b ; //将b向量复制到a向量中 5>. 比较 保持 ==、!=、>、>=、<、<= 的惯有含义 ; 如: a == b ; //a向量与b向量比较, 相等则返回1 6>. 插入 - insert ①、 a.insert(a.begin(), 1000); //将1000插入到向量a的起始位置前 ②、 a.insert(a.begin(), 3, 1000) ; //将1000分别插入到向量元素位置的0-2处(共3个元素) ③、 vector<int> a(5, 1) ; vector<int> b(10) ; b.insert(b.begin(), a.begin(), a.end()) ; //将a.begin(), a.end()之间的全部元素插入到b.begin()前 7>. 删除 - erase ①、 b.erase(b.begin()) ; //将起始位置的元素删除 ②、 b.erase(b.begin(), b.begin()+3) ; //将(b.begin(), b.begin()+3)之间的元素删除 8>. 交换 - swap b.swap(a) ; //a向量与b向量进行交换</span>
对于二维向量vector<vector<T>>
如果一个向量的每一个元素是一个向量,则称为二维向量
例:vector<vector<int> > a;//这里,两个“>”间的空格是不可少的
vector< vector<int> > b(10, vector<int>(5)); //创建一个10*5的int型二维向量
实际上创建的是一个向量中元素为向量的向量。同样可以根据一维向量的相关特性对二维向量进行操作。</pre><pre name="code" class="cpp"><span style="font-size:14px;">#include<iostream> #include<vector> using namespace std ; int main() { vector< vector<int> > b(10, vector<int>(5, 0)) ; //对部分数据进行输入 cin>>b[1][1] ; cin>>b[2][2] ; cin>>b[3][3]; //全部输出 int m, n ; for(m=0; m<b.size(); m++) //b.size()获取行向量的大小 { for(n=0; n<b[m].size(); n++) //获取向量中具体每个向量的大小 cout<<b[m][n]<<" " ; cout<<"\n" ; } return 0; }</span>
这些就是一些小小的关于vector的理解了哈
- 向量vector理解
- 理解向量vector的一些实现细节
- 向量 VECTOR
- 向量Vector
- 向量vector
- 向量-Vector
- [BZOJ1278][向量vector][模拟+向量]
- 二维向量:vector<vector<int>>
- zju2109 vector向量使用
- vector 向量用法
- vector 向量容器
- vector向量用法
- 向量vector的实现
- 指针遍历vector向量
- 学习C++ -> 向量(vector)
- STL之向量(vector)
- Vector(向量容器)
- vector向量容器
- At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger fo
- 【杭电oj2647】Reward
- Leetcode之路 258. Add Digits
- SiteMesh
- eclipse下maven项目开发编译
- 向量vector理解
- HDU 1686 Oulipo
- 五大常用算法之三:贪心算法(转)
- Android:极光推送集成注意要点——解决:Get sdk version fail![获取sdk版本失败!]解决方案
- [编程题]由异或门引出的几道数组的算法题
- TreeSet&NavigableMap&NavigableSet源码解析 给jdk写注释系列之jdk1.6容器(8)
- TensorFlow学习笔记(三):Tutorial第二个例子-深入MNIST-卷积神经网络
- Python基础教程1-3章笔记
- 杭电-4857 逃生(拓扑排序+优先队列)