STL------vector的简单使用

vector类似与数组,但更加安全,且长度是可变的。vector能存储同种类型的元素。
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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值