vector类型学习笔记
@(C/C++学习笔记)
相对于string
类型而言,vector
类型就要熟悉的多了。毕竟vector
作为数组的替代品,实在是方便多了。但是最近在开发中,发现有关方面还是有所欠缺,所以准备通过阅读
C
+
+
p
r
i
m
e
r
C++ primer
C++primer弥补一下缺漏。
关于构造和初始化
vector
的构造过程还算简单,基本方法有两种:直接初始化和列表初始化。乏善可陈。
//直接初始化
vector<int> v1;//默认初始化
vector<int> v2 = v1;
vector<int> v3(v1);//将v1拷贝到v2
vector<int> v4{10};
vector<int> v5 ={10};//以10初始化v5
vector<int> v6(10,1);//十个元素,每个初始化为1
//列表初始化
vector<int> v7{1,2,3,4};
vector<int> v8={1,2,3,4};
差不多就这些吧,没啥好说的。
关于push_back()
的闲聊
C
+
+
C++
C++标准要求vector
可以高效快速的增加元素,所以在初始化时声明大小没什么必要,甚至性能可能更差。另外,不能用范围for
循环来增加vector
中的元素。范围for
循环不应该改变其所遍历序列的长度。
vector
类型的比较
和string
类似,vector
类型也会有那些<
,>
,<=
,>=
,==
这类比较运算符,而且大小依据也类似:若参与比较的二者长度相等,对应位置上的元素相等,则二者相等;若二者对应位置上的元素相等,但长度不等,则长度长的那个大;否则以第一对不相等的元素作为比较依据。当然,进行比较的前提是vector
中的元素可以拿来比较
暂时闲聊这么多,剩下的到容器哪里再讨论