vector类似与数组,但更加安全,且长度是可变的。vector能存储同种类型的元素。
empty函数判断vector是否为空
clear函数清空vector
maxsize函数返回vector最大存储量
begin函数返回vector的的第一个元素的迭代器指针
end函数返回vector的最后一个元素的下一个位置的迭代器指针
push_back函数在vector尾部添加一个元素
pop_back函数删除最后一个元素
insert函数在给定位置插入一个或多个元素
erase函数删除一个或多个元素
front函数取第一个元素
back函数取最后一个元素
empty函数判断vector是否为空
clear函数清空vector
maxsize函数返回vector最大存储量
begin函数返回vector的的第一个元素的迭代器指针
end函数返回vector的最后一个元素的下一个位置的迭代器指针
push_back函数在vector尾部添加一个元素
pop_back函数删除最后一个元素
insert函数在给定位置插入一个或多个元素
erase函数删除一个或多个元素
front函数取第一个元素
back函数取最后一个元素
vector需要注意的地方:当vector内容发生改变,如添加、删除元素之后,要使用begin和end重新获取迭代器指针,因为添加、删除元素之后迭代器指针发生了变化
//vectortest.cc
#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
class Student
{
private:
char name[100];
public:
Student(const char *_name)
{
strcpy(name, _name);
}
char* getName()
{
return name;
}
void printName()
{
cout << name << endl;
}
};
int main()
{
vector<Student> students;
students.push_back(Student("zhangsan"));
students.push_back(Student("hahaya"));
students.push_back(Student("lisi"));
vector<Student>::iterator itr = students.begin();
//删除增加内容后要重新使用begin和end获取迭代器
//删除lisi
while(itr < students.end())
{
Student s1 = *itr;
if(strcmp(s1.getName(), "lisi") == 0)
{
students.erase(itr);
}
//s1.printName();
itr++;
}
itr = students.begin();
while(itr < students.end())
{
Student s1 = *itr;
s1.printName();
itr++;
}
return 0;
}