---恢复内容开始---Vector 是一个类模板。不是一种数据类型。 Vector<int>是一种数据类型
类的作用,是一种顺序容器,支持随机访问,可动态分配空间(扩充:销毁旧内存,更新迭代器),线性的数据结构
《《《《 扩充:》》》》
vector容器类型
vector容器是一个模板类,可以存放任何类型的对象(但必须是同一类对象)。vector对象可以在运行时高效地添加元素,并且vector中元素是连续存储的。
1.对象的操作:
1.push_back 在数组的最后添加一个数据
2.pop_back 去掉数组的最后一个数据
3.at 得到编号位置的数据
4.begin 得到数组头的指针(用于迭代器)
5.end 得到数组的最后一个单元+1的指针 (指向末端元素的下一个,不存在的元素)
6.front 得到数组头的引用
7.back 得到数组的最后一个单元的引用
8.max_size 得到vector最大可以是多大
9.capacity 当前vector分配的大小
10.size 当前使用数据的大小(返回v中元素的个数,v.size())
11.resize 改变当前使用数据的大小,如果它比当前使用的大,者填充默认值
12.reserve 改变当前vecotr所分配空间的大小
13.erase 删除指针指向的数据项
14.clear 清空当前的vector
15.rbegin 将vector反转后的开始指针返回(其实就是原来的end-1)
16.rend 将vector反转构的结束指针返回(其实就是原来的begin-1)
17.empty 判断vector是否为空 (v.empty())
18.swap 与另一个vector交换数据
2.使用:
a:数组习惯使用 (已知大小,索引元素)
oo: vector<int>v(10);类似定义数组,可用v[i]来访问
oo:vector<int>v(10,-1);定义了v,包含10个int型初始值为-1
oo: vector<int>v(a,a+6);int a{1,2,3,4,5,6,7};将a中的6个元素拷贝到v中
- vector<string>s;//vector可被另一个vector初始化,也可赋值给另一个vector
- void init_and_assigh()
- {
- vector<string>names(s);//另一个vector初始化
- s=names;//拷贝
- }
b:STL习惯用法(定义空vector,插入元素,使用迭代器)
//两种方法数据的存入和输出
1 #include<cstdio> 2 #include<vector> 3 #include<iostream> 4 using namespace std; 5 int main() 6 { 7 int i=0; 8 vector<int>v; 9 for(i=0;i<10;i++) 10 { 11 v.push_back(i); 12 } 13 /**************** 14 for(i=0;i<v.size();i++) 15 { 16 cout<<v[i]<<" "; 17 } 18 cout<<endl; 19 *******************/ 20 vector<int>::iterator iter; 21 for(iter=v.begin();iter!=v.end();iter++) 22 { 23 cout<<*iter<<endl; 24 } 25 return 0; 26 }//两种方法数据的存入输出
//对二维的定义
1 #include<cstdio> 2 #include<vector> 3 #include<iostream> 4 using namespace std; 5 int main() 6 { 7 int i=0; 8 vector<int>v; 9 for(i=0;i<10;i++) 10 { 11 v.push_back(i); 12 } 13 /* for(i=0;i<v.size();i++) 14 { 15 cout<<v[i]<<" "; 16 } 17 cout<<endl;*/ 18 vector<int>::iterator iter; 19 for(iter=v.begin();iter!=v.end();iter++) 20 { 21 cout<<*iter<<endl; 22 } 23 return 0; 24 }
1 #include<stdio.h> 2 #include<vector> 3 #include<iostream> 4 using namespace std; 5 int main() 6 { 7 int i=0,j=0; 8 vector<vector<int> >Array; 9 vector<int>line; 10 for(j=0;j<10;j++) 11 { 12 Array.push_back(line);//初始化,存入元素 13 for(i=0;i<9;i++) 14 { 15 Array[j].push_back(i); 16 } 17 } 18 for(j=0;j<10;j++) 19 { 20 for(i=0;i<Array[j].size();i++) 21 { 22 cout<<Array[j][i]<<" "; 23 } 24 cout<<endl; 25 } 26 return 0; 27 }
初学鄙陋,只看到了皮毛。
---恢复内容结束---