STL之vector
1.简介
# 容器vector表示对象的集合,其中所有对象的类型相同。
- vector能容纳绝大多数类型的对象作为元素,但引用不是对象,所以不存在包含引用的vector。
- 集合中每个对象都有一个对应的索引,索引用于访问对象,即vector可以使用下标访问vector的元素。
# vector和array的关系
- vector和array相似,均可以使用下标访问元素。
- vector理解为动态数组,vector可以根据需要随时调整自身大小以便容纳更多元素。
# vector头文件
1 #include<vector>
2.成员函数
3.code实例
1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 5 int main() 6 { 7 int vector_fun(); 8 vector_fun(); 9 10 system("pause"); 11 return 0; 12 } 13 14 int vector_fun() 15 { 16 // 创建一维向量 17 //vector<int> v1_int; 18 19 // 创建并初始化一维向量 20 vector<int> v1_int; 21 22 // 尾部插入 23 v1_int.push_back(1); 24 v1_int.push_back(2); 25 v1_int.push_back(3); 26 v1_int.push_back(4); 27 28 // 指定位置插入 29 v1_int.insert(v1_int.begin(), 0); 30 31 // 向量大小 32 int nsize = v1_int.size(); 33 cout << nsize << endl; //5 34 35 // 下标访问--向量对象的元素 36 cout << v1_int[0] << endl; //0 37 38 // 引用访问--向量对象的元素 39 cout << v1_int.front() << endl;//0 40 cout << v1_int.back() << endl; //4 41 42 // 迭代器访问--向量对象的元素 43 44 // 方式1:向量迭代器变量 45 vector<int>::iterator temp_begin; // 定义向量迭代器变量temp_begin 46 vector<int>::iterator temp_end; // 定义向量迭代器变量temp_end 47 48 temp_begin = v1_int.begin();// 获取向量对象首元素的迭代器--首迭代器 49 temp_end = v1_int.end(); // 获取向量对象尾后元素的迭代器--尾后迭代器 50 51 for (temp_begin; temp_begin < temp_end; ++temp_begin) 52 { 53 cout << v1_int[*temp_begin] << endl; // 向量迭代器变量解引用 54 } 55 56 //方式2:自动迭代器变量 57 for (auto i = v1_int.begin(); i < v1_int.end();++i) 58 { 59 cout << v1_int[*i] << endl; // 自动迭代器变量接引 60 } 61 62 // 指定位置删除 63 v1_int.erase(v1_int.begin() + 2); //删除第三个元素 64 cout <<"向量长度"<< v1_int.size() << endl; 65 66 // 清空向量 67 v1_int.clear(); 68 cout <<"向量长度"<< v1_int.size() << endl; 69 70 return 0; 71 } 72 73