小朋友学C++(18):标准库vector类
vector(向量)是 C++中的一种数据结构,也是一个类。它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的。
一、定义和初始化
vector v1; // T为类型名,比如int, float, string等
vector v2(v1); // 将v1赋值给v2
vector v3(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的类型一致)
三、迭代器(iterator)
迭代器相当于指针,用来储存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
更多内容请关注微信公众号
还没有评论,来说两句吧...