vector相关知识
树图思维导图提供 vector 在线思维导图免费制作,点击“编辑”按钮,可对 vector 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:48c9223514d33bc746c8475625493414
vector思维导图模板大纲
vector<int> v
定义一个vector,其中的元素为int类型
类似一位数组
vector<int>v[N]
定义一个vector数组,其中有N个vector
类似二维数组
vector<int> v(len)
定义一个长度为len的vector
vector<int> v(len,x)
定义一个长度为len的vector,初始化每个元素为x
struct stu{...};vector<stu> v
自定义的结构体类型也可以保存在vector中
迭代器就像STL容器的“指针”,可以用星号“*”操作符解除引用
一个保存int的vector的迭代器声明方法为: vector<int>::iterator it;
vector的迭代器是“随机访问迭代器”,可以把vector的迭代器与一个整数相加减,其行为和指针的移动类似。 可以把vector的两个迭代器相减,其结果也和指针相减类似,得到两个迭代器对应下标之间的距离。
迭代器有关的函数
v.begin( );
返回vector第一个元素的迭代器
begin函数返回指向vector中第一个元素的迭代器。例如a是一个非空的vector,则*a.begin( )与a[0]的作用相同所有的容器都可以视作一个“前闭后开”的结构
v.end( );
返回vector最后一个元素后一个位置的迭代器
end函数返回vector的尾部,即第n个元素再往后的”边界”*a.end( )与a[n]都是越界访问,其中n=a.size( )。
注意,关联容器的送代器不支持it+n操作,仅支持it++操作
vector<int> v ={1, 2, 3 };
初始化vector, v:{1, 2, 3}
vector<int>::iterator it = v.begin( );
定义vector的迭代器,指向begin( )
v.push back(4);
在vector的尾部插入元素4,v:{1,2,3,4}
int x = v.pop back( );
删除vector的最后一个元素并返回,v:{1,2,3}, x=4
v.size( );
返回vector中元素的个数
v.empty( );
返回vector是否为空,若为空则返回true否则返回false
v.clear( );
清空vector
v.front( );
返回vector中的第一个元素
v.back( ):
返回vector中的最后一个元素
v.begin( );
返回vector第一个元素的迭代器
v.end( ):
返回vector最后一个元素后一个位置的选代器
v.erase(v.begin( ));
删除迭代器it所指向的元素
vinsert(v.begin( ),1):
在选代器it所指向的位置前插入元素1,返回插入元素的迭代器
find(v.begin( ),v.end( ),x)
在集合v中查找等于x的元素,并返回指向该元素的迭代器。若不存在,则返回v.end(0).end()并不是最后一个元素,最后一个元素在end(-1里。==v.end(),说明还没走到末尾就找到这个元素。