STL一些基本容器

一、注意事项:




二、可遍历的容器

1.vector容器

需要用头文件#include<vector>,迭代器支持随机访问

是一种简单高效的容器,可以改变储存空间的大小,可以替代数组,又称为单端数组。

元素下标从0开始。Vector具有内存自动管理的功能,对于元素插入和删除,可以动态调整所占内存空间。

需要迭代器来联系算法和容器。v.begin()是开始元素。v.end()是最后一个元素的下一个位置。

是一种简单高效的容器,可以改变储存空间的大小,可以替代数组
Vector的定义
/1. 可以通过vector<T> v;   这是最基础的定义。
//2. 可以用vector<T> v2(v.begin(),v.end())来整段copy
//3. 可以用vector<T> v3(int n,int m)初始定义为n个m。
//4. 可以通过vector<T> v4(v1)把v1整体复制给v4.
一些函数,已知vector<T> v。
//  v.empty()用来判断容器是否为空。
//  v.capacity(),来返回一个int类型表示容器的容量
//  v.size()来返回现在容器里的元素个数。
//  v.resize(int n,int m)重新指定容器的容量为n,多的部分删去,少的部分全部赋值为m,不写m就默认为0.
//  a.push_back(n),在容器末尾添加一个元素,值为n
//  a.pop_back(),在容器末尾删除元素
//  a.insert(迭代器地址,int n,int m),在指定位置的前面插入n个值为m的元素,后面的元素依次后移。
//  a.erase(迭代器地址),在容器任意位置删除元素,
或者a.erase(迭代器地址1,迭代器地址2),删除从1到2的全部元素
//  v.front()返回容器第一个元素
//  v.back()返回容器最后一个元素。
//  a.swap(a,b),交换a,b的值(a,b必须是同一类型)
//  a.clear(),清空容器
//  [i],访问第i+1个元素,即[]支持数组形式直接访问,或者用v.at(i)
//  v.swap(v2)实现两个容器内容的互换,即v与v2内容互换。
//  v.reserve(int n)预留空间函数,预留的位置没有初始化,元素不可访问。可以事先设置容器容量,虽然vector中容量可以动态改变,但是改变多次会多次调整浪费时间。
//  a.begin(),是第一个元素,a.end(),是最后一个元素后面的地址
//如果容器需要作为参数被引用,要加个取地址符。
如:void tem(vector<int>&v)



优缺点:

优点:

所占内存是一片连续的线性空间,访问元素的速度会比较快。

对于数组,vector可以动态改变大小。

缺点:

对于头部插入、删除元素效率低,因为每次操作完后面的元素还要前后挪动,数据量越大效率越低。




全部评论

相关推荐

Rena1ssance_:对的,要是面评没太烂,勤更新简历等捞就行了,腾讯可以无限复活
点赞 评论 收藏
分享
董春花_:真诚无罪,别听评论区那个清华的。按他的逻辑,你有分寸人觉得你是不想来,你积极热情人觉得你太想来,你好骗人就可你养鱼,你不好骗人觉得你服从性不高,合着**做啥都白扯。保持谦逊礼貌与对offer的积极性不才是最正常,也正确的做法么?招聘方的错强加到应聘者身上,***何不食肉糜。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务