C++标准模板库vector的常用操作

2020-01-06 19:56:20丽君

六:查找


  vector<int>::iterator it = find(v.begin(), v.end(), 5);
  if(it != v.end())
  {
    cout << "found";
  }
  else
  {
    cout << "not found";
  }

七:删除


  for(vector<int>::iterator it=v.begin(); it != v.end(); it++)
  {
    if(*it == 8)
    {
      it = v.erase(it);//it会++一次
      it--;    //删除完后需要--,否则最终循环越界
    }
  }

八:释放内存

存放整形vector释放


 //存放整型
 vector<int> v;
 for (int i=0; i<100; i++)
 {
 v.push_back(i);
 }
  //释放内存
  {
    vector<int> vEmpty;
    v.swap(vEmpty);
  }

存放结构体vector释放


 //存储结构体
 vector<Student> vStu1;
 for (int i=0; i<10; i++)
 {
 Student stu;
 strcpy(stu.name, "woniu201");
 stu.age = 30 + i;
 vStu1.push_back(stu);
 }
 //释放内存  
    {
      vector<Student>
    }
 vector<Student> vEmpty;
     vStu1.swap(vEmpty);

存放结构体指针vector释放


 //存储结构体指针
 vector<Student*> vStu2;
 for (int i=0; i<10; i++)
 {
 Student* pStu = (Student*)malloc(sizeof(Student));
 strcpy(pStu->name, "wangpengfei");
 pStu->age = 30 + i;
 vStu2.push_back(pStu);
 }
 //释放内存
 for (vector<Student*>::iterator it = vStu2.begin(); it != vStu2.end(); it++)
 {
 if (NULL != *it)
 {
  delete *it;
  *it = NULL;
 }
 }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对ASPKU的支持。


注:相关教程知识阅读请移步到C++教程频道。