首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

vector不是模板_vector的实现

1.vector容器 vetcor顾名思义就是一个向量的容器,该容器中的每个元素都属于同一个类型,有点类似于数组,vetor容器与数组的不同之处就在于,它具有“动态”的属性,举例来说,如果定义了一个vector...vector容器的常规操作有: 初始化 vectora(10) vector :说明这是一个什么容器 int : 说明这个容器里面放的是什么类型的东西 a: 容器名 (10); 这个容器有多大...vectora(10,995) //这个容器一共有10元素,每个元素的值都是998 访问vector 下标 at方法 其他 a[10] //访问第11个元素 a.at(4) //访问第...5个元素 a.back(); //返回a的最后一个元素 a.front(); //返回a的第一个元素 遍历vector中的元素 迭代器 for(auto it = a.begin(); it !...利用下标 for(auto i = 0; i < a.size(); ++i) cout<<a[i]<<" "; cout<<endl; 注意 .size()方法可以获取vector

64710
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【c++】vector以及vector的模拟实现

    vector的介绍及使用 1.vector的介绍 https://cplusplus.com/reference/vector/vector/ vector是表示可变大小数组的序列容器 就像数组一样,.../reference/vector/vector/ vector在实际中非常的重要,在实际中我们熟悉常见的接口就可以,下面列出了哪些接口是要重点掌握的 2.1 vector的定义 2.2 vector...深度剖析及模拟实现 3.1 使用memcpy拷贝问题 假设模拟实现的vector中的reserve接口中,使用memcpy进行的拷贝,以下代码会发生什么问题?...(size_t n) { // 使用vector定义二维数组vv,vv中的每个元素都是vectorvectorvector> vv(n); // 将二维数组每一行中的vecotr...类型的,每行没有包含任何元素,如果n为5时如下所示: vv中元素填充完成之后,如下图所示: 使用标准库中vector构建动态二维数组时与上 3.3 代码实现 由于vector实例化的时候需要类型,所以在命名空间中用类模板进行实现

    8010

    vector的模拟实现

    上一篇我们对vector一些常用的函数进行了讲解,本篇博客我们就对vector进行模拟实现,以便于我们更好地了解vector的使用以及对一些常见bug的认识 有了string类的模拟实现,vector的模拟实现我们上手起来就简单一点了...: 首先为了和库里面的vector混淆视听,放入自己命名的空间里,并且根据vector的源码分析我们得出了三个成员变量: 分别是: 其实他们实质上都是指针,位置大概是这样的,遵循左闭右开的规则...size_t size() const { return _finish - _start; } pushback尾插函数 尾插函数在很多地方可以复用,所以我们首先解决了尾插,为后面的函数进行模拟实现提供了基础...pos) const { assert(pos < size()); return _start[pos]; } resize函数和reserve函数 其实我们可以将reserve先实现后直接将..._start = tmp; _finish = _start + sz; _endofstorage = _start + n; } } resize函数的扩容我们就用reserve来实现

    7810

    【C++】模拟实现vector

    一.了解项目功能 声明: 该模拟实现仅适用于STL初学小白了解vector的简单实现,会结合一些STL源码作为参照,但是源码中涉及的空间配置器部分我们不做涉及!...spm=1001.2014.3001.5502 二.逐步实现项目功能模块及其逻辑详解 通过第一部分对项目功能的介绍,我们已经对vector的功能有了大致的了解,虽然看似需要实现的功能很多...vector构造函数 实现无参构造函数 vector的无参构造函数比较简单,我们利用初始化列表将所有的迭代器都指向nullptr即可,无参构造函数代码如下: vector() :_start...& operator=(vector v) { swap(v); return *this; } 实现vector的begin()函数和end()函数 因为我们实现的vector...修改容量前后,vector在内存中的情况图示如下: 综上所述,reserve()函数实现代码如下(该实现包含两大陷阱错误): void reserve(size_t n) { //检查

    6820

    【C++】—— vector模拟实现

    > vector(InputIterator first, InputIterator last); ~vector(); vector& operator=(vector v);...模拟实现 vector成员变量 ​ vector成员变量,和顺序表的成员变量有所不同,不再是指针、size和capacity了,而是迭代器 start、finish和end_of_storage。...(这个需要先实现交换函数) vector& operator=(vector v) { swap(v); return *this; } ​ 注意事项: 在赋值的过程中没有使用...iterator 迭代器 ​ vector 的迭代器这里实现的是原生指针;迭代器相关函数:begin()、end()这些都比较简单就不过多描述了。...模拟实现就结束了,希望你能有所收获 感谢各位大佬支持并指出问题 ​ 如果本篇内容对你有帮助,可以一键三连支持以下,感谢支持!!!

    7910

    【STL】vector的模拟实现

    放在专栏【C++知识总结】,会持续更新,期待支持 1、vector的数据结构 这里我们与SGI版本保持一致,成员变量为三个迭代器,对一些常见接口实现模拟。...2.1.5、析构 析构函数的实现很简单,直接delete后,将迭代器置空即可: 2.2、迭代器相关 对于vector中的begin,返回其首地址即start,end返回finish即可。  ...我们知道,迭代器最重要的就是要实现对容器元素的访问,因此迭代器的++与解引用*操作十分重要,但是由于vector的迭代器是一个指针,而我们知道,指针本身就支持++与解引用操作,并且我们这里vector是一个连续的空间...,指针++会跳过一个T类型的大小,即会指向vector 中的下一个元素,因此这里我们不需要手动实现(指针本身自带)。...2.3、运算符重载 2.3.1、[]重载 我们知道vector是可以用下标来实现对元素的访问,这里我们对[]进行重载,使我们的vector也支持下标访问。不过在实现时需要注意避免下标越界。

    23930

    C++:模拟实现vector

    成员变量与迭代器 我们还是需要在一个命名空间里模拟实现vector,防止和标准库里的起冲突。...所以我们的模拟实现要写成类模板。...2.vector可以看做顺序表的升级,但是模拟实现vector跟我们以往实现顺序表有所不同,顺序表是使用一个动态开辟的数组、数组有效元素个数size和数组容纳最大有效数据的个数capacity维护的,而模拟实现...要解决这个问题,我们就得手动实现深拷贝, 因为new出来的空间如果是自定义类型的话就自动调用构造函数初始化了,所以这里走的是赋值重载来实现深拷贝。...4 : 2 * capacity()); } //插入元素,更新_finish *_finish = x; _finish++; } 构造函数 vector的构造函数我们实现无参构造、迭代器区间构造和

    9610

    vector深度剖析及模拟实现

    前言 本文重点模拟实现vector的核心接口, 帮助我们更好的理解底层逻辑, 以及对vector的深度剖析. 博客主页: 酷酷学!!! 期待关注~ 正文开始 vector核心框架模拟实现 1....前期准备 首先, 可以查看到STL源码, 底层vector的实现并不是我们通常顺序表那样定义成员变量, 而是通过迭代器也就是指针进行实现, 那么我们也按照STL来进行模拟实现....{ public: typedef T* iterator; typedef const T* const_iterator; //核心接口的实现 private: iterator...(size_t n,const T& value = T())之后, * vector(int n,const T& value = T())就不需要提供了,但是对于: * vector实现和探究, C++这门语言本身就比较偏向底层, 希望能够帮助大家进一步理解底层逻辑以及实现思路, 感谢三连!!!

    10410

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券