#include <iostream>

using namespace std;

int main(){
    
    vector<int> a;
    
    a.size();//告诉我们这个数组长度是多少 实际长度
    a.empty();//告诉我们这个数组是不是空的 返回的是一个布尔值 如果数组是空的就返回true 如果数组不是空的就返回false
    //这两个函数常用容器都会有 不管是之前的string 还是vector
    
    //vector 还有个函数叫做clear clear表示把当前数组清空
    a.clear();
    
    
    
    
    //vector还有一个迭代器的概念 迭代器是一个类似于指针的概念 或者说是类似于数组下标的一个概念
    
    vector<int>::iterator it = a.begin();//a.begin()是a的一个起始迭代器
    // it + 2 = a[2]//it 访问的就是a[0]
    
    //如果我们想要访问迭代器的值 那么就访问*it就可以了 可以把迭代器当成一个指针来看
    
    //一个vector有两个迭代器 一个是begin()也就是啥的第一个元素的迭代器
    //a.begin()也就是a的元素的地址
    //还有另外一个迭代器是a.end(); 是指最后一个位置的下一个位置
    //这两个迭代器大部分stl容器都会有的
    
    // *a.begin()和这个a[0]的效果其实是一样的
    //因为a.begin()是迭代器 前面加*指取迭代器地址里的值 所以和a[0]是一个效果的
    
    //!!!注意:基本上所有的迭代器都是左开右闭的结构 begin是第一个元素 end是最后一个元素的下一个位置 也就是[begin, end)begin <= x < end
    
    
    return 0;
}