迭代是一种对象,它能够用来遍历标准模板库容器中部分或全部元素,每个迭代对象代表容器中的确定地址。迭代修改了常规指针接口,所谓迭代是一种概念上抽象:那些行为上像迭代东西都可以叫做迭代。然而迭代有很多不同能力,它可以把抽象容器和通用算法有机统一起来。迭代提供一些基本​​操作符​​​:*、++、==、!=、=。这些操作和C/C++“操作array元素”时指针接口一致。不同
原创 2022-11-04 10:58:11
108阅读
一:Vector简介Vector基本信息Vector 是矢量队列。继承于AbstractList,实现了List, RandomAccess, Cloneable这些接口。 Vector 继承了AbstractList,实现了List;所以,它是一个队列,支持相关增删改、遍历等功能。 Vector 实现了RandmoAccess接口,即提供了随机访问功能。RandmoAccess是java中
转载 2023-07-15 14:02:08
131阅读
STL源码库中,空间配置是内存分配基石,最近在研究STL源码库时也是花了较长时间理解,所以这里记录一下我学习历程(在这篇文章中,先实现第一级空间配置),根据自己理解实现了一份空间配置,随后再通过这个配置实现一个简单vector容器;STL第一级空间配置空间配置首先介绍一下什么是空间配置——所谓空间配置,就是STL库内进行内存分配工具,一般分为两种类型:第一级空间配置
vector简易实现整理自《数据结构与算法分析–C++描述(第3版)》3.4节“向量实现”。详细可参考《STL源码分析》4.2节。 具体实现代码如下: 1 #ifndef VECTOR_H 2 #define VECTOR_H 3 4 #include 5 using nam...
原创 2021-07-31 10:37:49
151阅读
简单实现了构造、析构、push_back、pop_back、operator=、operator[]、clear等函数 template<class T> class my_vector { private: int count; int alloc_size; T *arr; public: my
转载 2017-06-11 09:03:00
74阅读
2评论
引子在介绍C++11文章或者博客中,经常会出现POD类型和Trivial类型影子。但是POD类型和Trivial类型到底是什么意思呢?POD类型POD类型好处POD类型粗略上来讲,POD是C++为兼容C内存布局而设计,主要用于修饰用户自定义类型。但POD却远比这个要复杂。POD(Plain Old Data),从字面意思上来看,是平凡普通老旧格式数据,POD是一个类型属性,既不是关键
Vector.h#pragma once #include <iostream> #include <assert.h> template<class T> class Vector { public: typedef T* Iterator; typedef const&n
原创 2016-07-28 22:32:58
679阅读
一、vector介绍vector文档介绍1、vector是表示可变大小数组序列容器。2、就像数组一样,vector也采用连续存储空间来存储元素。也就是意味着可以采用下标对vector元素进行访问,和数组一样高效。但是又不像数组,它大小是可以动态改变,而且它大小会被容器自动处理。3、本质讲,vector使用动态分配数组来存储它元素。当新元素插入时候,这个数组需要被重新分配大小为了增
原创 精选 2023-08-18 20:06:24
364阅读
首先要知道vector是什么vector是什么  1.vector是表示可变大小数组序列容器。就像数组一样,vector也采用连续存储空间来存储元素。也就是意味着可以采用下标对vector元素进行访问,和数组一样高效。但是又不像数组,它大小是可以动态改变,而且它大小会被容器自动处理。本质讲,vector使用动态分配数组来存储它元素。当新元素插入时候,这个数组需要被重新分配大
原创 精选 2023-08-18 15:16:05
270阅读
Vector实现了一个动态数组。和 ArrayList 很相似,但是两者是不同Vector 是同步访问Vector 包含了许多传统方法,这些方法不属于集合框架。Vector 主要用在事先不知道数组大小,或者只是需要一个可以改变大小数组情况。Vector 类支持 4 种构造方法。第一种构造方法创建一个默认向量,默认大小为 10: Vector() 第二种构造方法创建指定大小
转载 2023-07-17 19:39:13
48阅读
语法细节类内静态(static)成员在类外定义时候不加statictypename作用1. 一种是在声明模板类、模板函数参数时候2. 还有一种是在取别名时候std::enable_if 几种用法定义cin cout endl都是什么endl 是一个函数 参数是basic_ostreamcin cout 是两个对象【在指定地址构造对象】placement new【STL内存拷贝】st
原创 2023-05-21 18:13:50
107阅读
风尘仆仆我会化作天边晚霞~
原创 2023-04-11 07:09:48
122阅读
C++STL容器中vector简单分析和模拟实现
原创 精选 2023-11-08 12:08:17
310阅读
2点赞
2评论
STL中Vector代码实现,用动态数组实现        常用容器包括vector, list, deque, queue, stack, map等,这些容器都是用基本数据结构实现vector是用动态数组实现;list是用双向循环链表实现;deque有些特别,他是用一个个缓冲组成,把这些缓冲区头指针放在数组中,使得使用者用迭代+1就可
原创 精选 2021-11-06 09:48:25
674阅读
@TOC1.查看STL源码start、finish、end_of_storage 都是指针通过观察函数实现过程,可以得知 start与begin等价 ,end与finish等价2.vector模拟实现为了模拟实现vector,所以使用自己名空间包含vector类1. 构造函数无参构造vector()//构造函数 :_start(nullptr) , _finish(nullptr
原创 精选 2023-05-06 09:47:53
233阅读
这一节我们要进一步深入 Cortex-M3 初始化阶段和初步学习中断向量表。由于这一节内容与 从零开始构建实时抢占式内核 高度重合,本篇文章将作为内核系列前序文章,源码也作为 Preemptive 项目的 Chapter1 放在了 Github 上。 在前几篇文章中我们并没有涉及内存初始化内容,这是因为我们引入了 cortex-m-rt ,这个库帮助我们完
一、迭代简介迭代是一种遍历容器内元素数据类型。这种数据类型感觉有点像指针。string,vector,[],很少用[],更通用方式就是用迭代。通过迭代,我们可以读容器中元素值,读string中每个字符,还可以修改某个迭代所指向元素值。迭代支持++,--自增,自减操作,相关list/map容器二、容器迭代类型vector<int> iv(100,200,300)
文章目录:1.Vector属性2.Vect
原创 2023-05-09 10:22:34
56阅读
1. Vector类要求Vector第1版和之前Vector2d类兼容提供切片支持序列协议—— __len__和__getitem__两个方法自定义格式语言扩展2. Vector实现这里我们重点实现功能为:从类中,任意抽取其中若干元素,可以实现类似列表功能。2.1 Vector第一版如果要实现序列协议,时需要实现__len__和__getitem__协议即可class Veco
转载 2023-07-19 22:11:36
96阅读
#include<stdio.h>#include<vector>#include<string>#include<fstream>#include<algorithm>//include count#include<iostream>using namespace std;vector<string>v;vector<string>::iterator it;bool cmp(string s1,string s2){ if(s1.length()<s2.length())return tr
转载 2013-05-01 15:40:00
216阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5