神刀安全网

小朋友学C++(18):标准库vector类

vector(向量)是 C++中的一种数据结构,也是一个类。它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的。

一、定义和初始化

vector<T> v1; // T为类型名,比如int, float, string等
vector<T> v2(v1); // 将v1赋值给v2
vector<T> 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<T>::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 

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » 小朋友学C++(18):标准库vector类

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址