C++之vector

在C++的标准库中,有个名为 vector 的类模板,以下将是对其的一点总结;

(1)需要的头文件以及命名空间:

#include <vector>
using std::vector;

(2)vector 的 简介

  vector 表示 对象的集合,其中所有对象的类型都相同,常被称为“容器”。

   这个对象可以是任何对象,注意引用并不是对象,包括基础类型,类  甚至是  vector  类型。

(3)vector 的初始化

vector<T> v1;     //v1是一个空vector,元素类型为T类型,执行默认初始化;
vector<T> v1(v2);  //v1中包含v2中所有元素的副本,等价 v1 = v2;
vector<T> v1(n ,val);  //包含n个元素,每个元素的值都是 val;
vector<T> v1(n);  // 包含 n 个元素,默认执行初始化;
vecrot<T> v1{a,b,c,d...} //包含相应个数的元素,每个元素都是相应的值。

(4)vector 的一些相关操作(相关实例都会放在后面的云盘里以帮助理解)

v.push_back(i)    在容器的末尾插入元素 i ;
v.pop_back();    删除容器末尾的元素
v.insert()    在特殊位置的元素前插入一个新的元素,元素插入后会增加容器的大小
v.erase()    从容器中删除一个 或者 一段(v.erase(first,end))元素
v.swap(v1)    交换容器 v 和 v1 的元素
v.begin()    得到容器第一个元素的值
v.end()    得到容器“尾元素的下一个位置”,是容器的一个本不存在的“尾后”
v.clear()    清空容器
v.size()    获取容器的大小,返回一个无符号的数
v.empty()    若容器为空,返回true,否则返回false
vector<int>::iterator it;   //使用迭代器访问容器
for(it=vec.begin();it!=vec.end();it++)
    cout<<*it<<endl;

 

 

 

二  虽然容器的对象可以为类,但是注意 vector 不要定义在类中,你能想象一下在写入文件时,一个类里面有一个vector,这个vector里面又包含了这个类的感觉。最后写入文件的只有一个类的值。

#include <iostream>
#include <vector>

class Student{
private: 
   int number;
   char[10] name;      
};

vector<Student> v1;

 

 

三 算法

  

(1)使用sort排序:需要头文件#include<algorithm>,

    sort(vec.begin(),vec.end()); //(默认是按升序排列,即从小到大).
    
    bool Comp(const int &a,const int &b) //可以通过重写排序比较函数按照降序比较     {      return a>b;     } 调用时:sort(vec.begin(),vec.end(),Comp),这样就降序排序。

 

关于之前提到的云盘连接 

 https://yunpan.cn/OckwF8MqmhdHz9 (提取码:129d)

posted @ 2016-09-13 22:11  ErhuoL  阅读(190)  评论(0)    收藏  举报