当前位置: 首页 > news >正文

13.vector(上)

顺序表有一个指针,sizecapacity,-a指向一个数组,存什么指针指向内容就是什么,

vector 的vector 在这个地方初始化可以调用它的resize也可以构造的时候就给可以用n个value初始化,,,十行五列,编译器在这实例化两个vector,底层:

模版的原理就是让我们的事情给编译器去干。vecor<vector>实际实例化了两个类一个是vector<int>,一个是int

template<class T>
class vector
{T& operator[](int i){assert(i < _size);return _a[i];}
private:T* _a;size_t _size;size_t _capacity;
};vector<int>
class vector
{int& operator[](int i){assert(i < _size);return _a[i];}
private:int* _a;size_t _size;size_t _capacity;
};// vector<vector<int>>
class vector
{vector<int>& operator[](int i){assert(i < _size);return _a[i];}
private:vector<int>* _a;size_t _size;size_t _capacity;
};

vector<<>>本质是两个【】的调用,第一个【】的调用vector<int>的【】,返回一个vector<int> 对象,第二层再调用int 的operator【】,这时候相当于数组的第一个数据。此时返回值是int ,都是用引用返回都可以修改。

这里vector vector 就像二维数组一样,实际是两个函数调用,

这两句代码是等价的

这里数组可以随便开,而静态是定常的,这是最大的区别。

C:

free也很麻烦,还是vectorvector好用

返回二维数组长度(行)int*外面可以拿到,但是每一行数据个数可能不一样,返回每一行的长度需要一维数组来存,实参指针传给形参拿不到,所以传地址,就是二级指针

C++返回vector 的vector 不需要返回了,size 里面都有记录了,

这每一行数据个数是变化的,

就是vector <int>,就是调用vector<int>默认构造函数去初始化,,就是我初始化了但是里面一个值也没有

back,front返回的也都是引用

再改值

也可以直接resize改成1

vector底层:右键转到定义就跳到vector的源代码了

看源代码不用一行一行看 一行一行看看不懂比如vector包含内存池,需要alloc,vector猜在vector。h中,然后确认

一看vector类都在里面,就是了,上来看细节,就崩溃了。

vector不是capacity size 这是四个迭代器,往上找

迭代器在这,是value type* 是T,喜欢搞很多typedef,不要再看typedef是什么,不要看,看框架,需要那个细节看那,

猜猜这三个指针,开始 结束 capacity 相关。

看一下,看一下构造函数,初始化是什么样,

平时用vector 定义的是空的,开始pushback ,很多接口,看一下核心接口,捋一下类关系,最好画图,框架就清楚了,再看细节,扩容怎么阔这些,

先不看construct这些细节,(内存池只开了空间,没有初始化,这个construct就是)

看一下这个文件,

空间是从内存池来的,初始化不能直接赋值 比如说 finish是个string,没有初始化,未初始化空间初始化,就要调用构造函数就要调用定位new,显示调用构造函数,这是细节。

如果满了调用insert-aux,就是pos之前插入,

没有满就往后挪动数据,如果满了就扩容,

在这可以看一下size是怎么

根据这块就可以完全确认逻辑了,size是finish-start,左闭右开一减就是个数,

逻辑和猜的一样,这只是看一下工作干的,不用明白。

http://www.dtcms.com/a/611979.html

相关文章:

  • 阿里云免费网站备案房地产基础知识300问
  • 第35节:全局光照与路径追踪探索
  • 企业网站建设方案书范文百度做任务的网站
  • 郑州做花店网站大学生做爰网站
  • 工程施工行业在哪个网站容易找事做社交网站制作
  • 廊坊网站自助建站网站内页跳转wap
  • 营销网站建设与管理无锡新吴区建设局网站
  • 数据结构与算法 第一天
  • 武威市凉州区建设局网站佛山深圳建网站
  • wordpress 缩略图裁剪贵阳seo排名
  • C语言--位段(Struct)
  • 睢县网站建设有哪些做西点及烘焙的网站
  • 仪陇建设局网站wordpress 幻灯片主题
  • 广西建设厅网站绿色建筑标识个人主页页面
  • 海南美容网站建设网站界面设计方案
  • 宣传京津风筝网站的建设目的最全资源搜索引擎
  • 厦门维品网站建设做泵阀生意到哪个网站
  • 番禺网站建设系统云南网站开发费用
  • 网站首页排名seo搜索优化WordPress和哪个好用
  • 广告制作开票大类是什么吉林seo基础
  • 建设网站大概多少钱品牌营销推广策划方案
  • 为什么CAD 3D模型需要AI大模型?
  • 海口专业做网站网站开发技术支持
  • 企业网站的用户需求分析网站后台演示
  • 公司网站建设总结报告爱客crm网页版登录
  • 笔记软件汇总:MarkText、Notable、Docmost、Notes、Arya、
  • 周口市建设职工培训中心网站长春专业做网站公司
  • 三个年轻人做电影网站800万东阿聊城做网站的公司
  • 新公司做网站多少钱室内装饰设计师职业标准
  • 专门做继电器的网站图片自动生成器