您的位置:首页 > 理论基础 > 数据结构算法

退役狗回来继续写博客……C++数据结构//我觉得自己深深地被djh老师给欺骗了

2015-09-15 21:04 477 查看
/article/1556307.html

vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组。像数组一样,vector类也用从0开始的下标表示元素的位置;但和数组不同的是,当vector对象创建后,数组的元素个数会随着vector对象元素个数的增大和缩小而自动变化。

vector类常用的函数如下所示:

1.构造函数

vector():创建一个空vector

vector(int nSize):创建一个vector,元素个数为nSize

vector(int nSize,const t& t):创建一个vector,元素个数为nSize,且值均为t

vector(const vector&):复制构造函数

vector(begin,end):复制[begin,end)区间内另一个数组的元素到vector中

2.增加函数

void push_back(const T& x):向量尾部增加一个元素X

iterator insert(iterator it,const T& x):向量中迭代器指向元素前增加一个元素x

iterator insert(iterator it,int n,const T& x):向量中迭代器指向元素前增加n个相同的元素x

iterator insert(iterator it,const_iterator first,const_iterator last):向量中迭代器指向元素前插入另一个相同类型向量的[first,last)间的数据

3.删除函数

iterator erase(iterator it):删除向量中迭代器指向元素

iterator erase(iterator first,iterator last):删除向量中[first,last)中元素

void pop_back():删除向量中最后一个元素

void clear():清空向量中所有元素

4.遍历函数

reference at(int pos):返回pos位置元素的引用

reference front():返回首元素的引用

reference back():返回尾元素的引用

iterator begin():返回向量头指针,指向第一个元素

iterator end():返回向量尾指针,指向向量最后一个元素的下一个位置

reverse_iterator rbegin():反向迭代器,指向最后一个元素

reverse_iterator rend():反向迭代器,指向第一个元素之前的位置

5.判断函数

bool empty() const:判断向量是否为空,若为空,则向量中无元素

6.大小函数

int size() const:返回向量中元素的个数

int capacity() const:返回当前向量张红所能容纳的最大元素值

int max_size() const:返回最大可允许的vector元素数量值

7.其他函数

void swap(vector&):交换两个同类型向量的数据

void assign(int n,const T& x):设置向量中第n个元素的值为x

void assign(const_iterator first,const_iterator last):向量中[first,last)中元素设置成当前向量元素

示例:

1.建立

  //int型vector,包含3个元素且每个元素都是9

  vector<int> vecIntB(3,9);

2.添加

  vecIntA.push_back(1);

3.打印

  for(int i=0;i<nSize;i++)

   cout<<vecIntA.at(i)<<" ";

4.通过引用修改vector

  cout<<"通过数组修改,第二个元素为8:"<<endl;

   vecIntA[1]=8;

5.删除

①删除第5个元素 vecIntA.erase(vecIntA.begin()+4);
②删除第2-5个元素 vecIntA.erase(vecIntA.begin()+1,vecIntA.begin()+5);

_____以下是djh老师授课内容_________________________________________

一、定义

二、向量对象支持的操作接口12

  1.size()

  2.get(r)

  3.put(r,e)

  4.insert(r,e)

  5.remove(r)

  6.disordered()

  7.sort()

  8.find(e)

  9.search(e)

  10.deduplicate()

  11.uniquify()

  12.traverse()

三、构造&析构

  1.默认构造  2.复制构造

四、动态空间管理

  1.向量扩容&缩容、分摊时间分析

五、重载[] 像数组一样下标访问向量元素//取代get()

六、有序向量的查找

  1.二分  2.fibonacci

七、排序

  1.气泡  2.并归

_____________________________________________

附:

typedef用法:http://www.cnblogs.com/charley_yang/archive/2010/12/15/1907384.html

模板类:http://blog.chinaunix.net/uid-27177626-id-3939006.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: