Vector动态数组【C++|STL】

V E C T O R  可变数组 VECTOR\ 可变数组 VECTOR 可变数组

头文件:#include <vector>

vector是一个动态数组容器,它的大小可以根据需要自动扩容。当向vector中添加元素时,如果当前的容量不足,vector会自动分配更多的内存空间,并将已有元素复制到新的内存区域中。

vector实现自动扩容的方式是使用指数级增长策略,即每次扩容时,将当前容量乘以一个大于1的因子(通常是2),来计算新的容量大小。

vs中以1.5倍扩容,gcc中则是2倍扩容。如果扩容之后的大小还是不够,就会扩容到需要的大小。

初始化
//初始化一个空的vector
vector<int> v;  

//初始化一个长度为10的vector,每个值都是1,如果省略第二个参数,默认为0
vector<int> v(10, 1); 
    
//用另一个vector初始化
vector<int> v(v1);

//使用初始化列表初始化
vector<int> v{1, 2, 3, 4, 5};

//使用迭代器初始化
vector<int> v(v1.begin(), v2.end());  // 从vector中获取
vector<int> v(arr, arr + 10);         // 从数组中获取
成员函数
  • 插入

    //在末尾插入666
    v.push_back(666);
    
    //在指定位置插入元素
    v.insert(v.begin() + 3, 666);   // 在v的第4个位置插入666
    
  • 删除

    //删除末尾的元素
    v.pop_back()
        
    //删除指定位置的元素
    v.erase(v.begin() + 3);     // 删除v的第四个元素
    
  • 访问元素

    // at成员函数
    cout << v.at(0) <<endl;  
    
    // 下标运算符 []
    cout << v[0] <<endl;
    
    // 访问第一个元素
    cout << v.front() <<endl;
    
    // 访问最后一个元素
    cout << v.back() <<endl;
    
  • 容器大小

    // 获取v中元素的个数
    cout << v.size() << endl;
    
    // 获取v分配的空间大小
    cout << v.capacity() << endl;
    
    // 改变容器的大小
    v.resize(6);
    
    // 容器是否为空
    cout << v.empty() <<endl;  //空则返回true,不空返回flase
    
  • 清空

    // 清空容器中的所有元素
    v.clear();
    
遍历
  • 迭代器遍历

    for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
    	cout << *it << " ";
    
    //auto自动推导类型
    for (auto it = v.begin(); it != v.end(); it++)  
    	cout << *it << " ";	
    
  • 数组下标遍历

    for (int i = 0; i < v.size(); i++)
    	cout << v[i] << " ";
    
  • C++11范围遍历

    for (auto x : v)		
        cout << x << " ";
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值