容器

蓝咒 提交于 2019-11-27 17:16:57

顺序容器

vector

初始化

//初始化一个size为0的vector
vector<int> abc;

//初始化size,但每个元素值为默认值
vector<int> abc(10);    //初始化了10个默认值为0的元素

//初始化size,并且设置初始值
vector<int> cde(10,1);    //初始化了10个值为1的元素

int a[5] = {1,2,3,4,5};
//通过数组a的地址初始化,注意地址是从0到5(左闭右开区间)
vector<int> b(a, a+5);

vector<int> a(5,1);
//通过a初始化
vector<int> b(a);

去重复

#include "vector"
#include "algorithm"
#include "string"

class Student
{
public:
  int age;
  std::string name;

  Student(int age, const char * name)
  {
    this->age = age;
    this->name = name;
  }

  bool operator ==(Student& s)
  {
    if (this->age == s.age && this->name == s.name)
    {
      return true;
    }
    return false;
  }
};

int main(void)
{
  std::vector<Student> list;
  Student *s1 = new Student(4, "ggg");
  Student *s2 = new Student(4, "ggg");
  Student *s3 = new Student(3, "xyg");
  list.push_back(*s1);
  list.push_back(*s2);
  list.push_back(*s3);
  //std::sort(list.begin(), list.end());
  //TODO:排序后才能去重
  list.erase(std::unique(list.begin(), list.end()), list.end());

  for (std::vector<Student>::iterator pos = list.begin(); pos != list.end(); ++pos)
  {
    printf("%s\n", pos->name.c_str());
  }
  
  getchar();
  return 0;
}

关联容器

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!