vector(向量)是 C++中的一种数据结构,也是一个类。它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的。
vectorv1; // T为类型名,比如int, float, string等 vectorv2(v1); // 将v1赋值给v2 vectorv3(n,i); // v3中含n个值为i的元素
v.empty(); // 判断v是否为空 v.size(); // 返回v的长度 v.begin(); // 返回v的第一个元素 v.end(); // 返回v最后一个元素的下一个元素的值(指向一个不存在的值) v.push_back(a); //在v的最后添加元素a(a必须与v的类型一致)
迭代器相当于指针,用来储存vector中元素的位置,即下标
定义:
vector<T>::iteartor iter = v.begin(); //iter指向v第一个元素
vector<T>::iteartor iter = v.end(); //iter指向v最后一个元素的下一个元素,这个元素不存在,通常用作循环结束的标志
*iter //*iter指向的元素的值,可对其进行赋值
iter++ //iter指向v下一个元素
常见用法: for(vector::iterator iter = v.begin(); iter != v.end(); ++iter) { }
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char** argv)
{
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
cout << "Size of v is: " << v.size() << endl;
for(vector<int>::iterator iter = v.begin(); iter != v.end(); iter++)
{
cout << *iter << ' ';
}
cout << endl << endl;
vector<float> v2(5, 3.33);
cout << "Size of v2 is: " << v2.size() << endl;
for(vector<float>::iterator iter = v2.begin(); iter != v2.end(); iter++)
{
cout << *iter << ' ';
}
return 0;
}
运行结果:
Size of v is 3
1 2 3
Size of v2 is 5
3.33 3.33 3.33 3.33 3.33