顺序容器
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;
}
关联容器