c++ STL标准模板库——vector容器

vector容器介绍

vector是STL标准模板库中的一个容器,可以容纳不同的数据类型,并且数据可以自动向前增长,因此称之为向量,vector是一个序列式容器,里面的底层实现是一个顺序表结构

vector容器的特性

1.数据自动初始化为0
2.可以动态增长长度(相比与数组强大太多,可以用vector取代数组)
3.支持随机访问数据
4.对内存边界进行检查
5.自动进行内存的申请和释放(vector底层实现,不用人为操作)

vector的使用

1.需要调用头文件:#include
2.需要打开命名空间std:using namespace std;
3.初始化的四种方式
4.vector对数据的操作
5.vector的迭代器
6.vector兼容c语言
6.使用#中的sort函数对vector的数据元素排序

//vector<数据类型>变量名;
#include
#include
#include
using namespce std;
int main()
{
    //vector的初始化
    vector<int>vec;//初始化一个存储int类型的vector容器(没有存储数据)
    vector<int>vec2(10);//初始化一个大小为10的vec2,数据会默认初始化为0
    vector<int>vec3(20,12);//初始化一个大小为20,数据初始化为12的Vec3
    //第四种方式,初始化列表初始化
    vector<int>vec4={1,2,3,4,5,6,7,8,9,0};
    
    //用范围for循环遍历vector
    for(auto e:vec4)
    {
       cout<<e<<" ";
    }
    cout<<endl;
    
    //vector对数据的操作
    int a=10;
    vec4.push_back(a);//尾插数据
    vdc4.pop_back();//尾删数据
    vec4.size();//获取vector的长度(存储元素个数)
    int n=20;
    /*vector 内部数据可以进行自动增长,不会像C语言一样永远是固定的,
     可以随时改变它的长度和大小*/
    vec4.resize(n);//改变vector容器的大小(参数:int)
   
   //vector中的迭代器
   vector<int>::iterator iter=vec4.begin();//初始化保存首地址
  *iter=10;//赋值改变数据
   cout<<iter[0]<<endl;//输出
   //迭代器遍历
  for (auto it = v.begin(); it != v.end(); it++)
  {
    cout << (*it) << " ";
  }
    cout << "\n";
    
    /* vector的特性非常强大了,但是,我们很多情况要使用c语言的数组,
      可能旧的函数和接口     需要调用C语言的
      数组函数
     data() 函数,返回C语言的指针*/
     //通过data函数返回C语言指针
     int *p=vec4.data();
   //通过首地址和尾地址,进行拷贝原来的数组
    int arr[10] = { 98, 21, 65, 78, 6, 54, 21, 32, 65, 12 };
   vector<int> vec4(arr,arr+10);
   //通过迭代器让vector与vector之间进行赋值
   vector<int>vec5={425167180890124};
   vector<int>vec6(vec5.begin(),vec.end());//正向赋值
  //使用反向迭代器逆序赋值
  //vectorvec6(vec5.rbegin(),vec5.rend());   
   
   //使用算法库的sort函数对vector进行排序
   sort(vec5.begin(),vec5.end());//从小到大
   for(auto e:vec5)
   {
     cout<<e<<" ";
   }
   cout<<endl;
   sort(vec5.rbegin(),vec5.rend());//从大到小
      for(auto e:vec5)
   {
     cout<<e<<" ";
   }
   cout<<endl;
   system("pause");
    return 0;
    }


你可能感兴趣的:(笔记,c++)