数组具有固定的容量,我们需要在初始化时指定数组的大小。有时它会非常不方便并可能造成浪费。 因此,大多数编程语言都提供内置的动态数组,它仍然是一个随机存取的列表数据结构,但大小是可变的。例如,在 C++ 中的 vector,以及在 Java 中的 ArrayList。 这里学习一下 auto关键字:a ...
分类:
编程语言 时间:
2019-04-28 12:50:30
阅读次数:
113
【容器】 18. Java 容器都有哪些? 19. Collection 和 Collections 有什么区别? Collection 是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法,所有集合都是它的子类,比如 List、Set 等。 Collections 是一个包装类,包含了很多 ...
分类:
编程语言 时间:
2019-04-27 11:37:30
阅读次数:
161
JDK1.8源码学习-ArrayList 目录 一、ArrayList简介 为了弥补普通数组无法自动扩容的不足,Java提供了集合类,其中ArrayList对数组进行了封装,使其可以自动的扩容或缩小长度,相当于动态数组。 ArrayList封装了一个动态的可以重新分配的Object[]数组,其中每一 ...
分类:
其他好文 时间:
2019-04-24 19:39:56
阅读次数:
163
用new 和 delete 的方法来实现。 注意:在使用new申请内存时,在使用过后,一定要采用delete来进行释放内存。 使用该方法创建动态数组时,需要由数组的角标依次向右进行创建;同时,也需要依照角标,从左到右来进行删除。 代码功能为:声明三维动态数组,将角标和进行相加并添加到mfc的list ...
分类:
编程语言 时间:
2019-04-24 00:15:54
阅读次数:
260
vector(向量容器),是 C++ 中十分有用一个容器。它能够像容器一样存放各种类型的对象,vector 是一个能够存放任意类型(类型可以是int, double, string, 还可以是类)的动态数组,能够增加和压缩数据。 使用 vector 之前,必须包含相应的头文件,vector 属于 s ...
分类:
编程语言 时间:
2019-04-23 18:59:58
阅读次数:
146
1 #include 2 #include // 头文件 3 using namespace std; 4 5 int main() 6 { 7 vector v; // 定义一个动态数组 vector v; 8 9 // 几种初始化方式: 10 vector v1(7); // v1中会含有7个元... ...
分类:
编程语言 时间:
2019-04-21 14:42:24
阅读次数:
138
简述: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于双链表的数据结构。 2.对于随机访问get和set,ArrayList优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势,因为A ...
分类:
其他好文 时间:
2019-04-19 00:42:53
阅读次数:
218
切片(slice)是 Golang 中一种比较特殊的数据结构,这种数据结构更便于使用和管理数据集合。切片是围绕动态数组的概念构建的,可以按需自动增长和缩小。切片的动态增长是通过内置函数 append() 来实现的,这个函数可以快速且高效地增长切片,也可以通过对切片再次切割,缩小一个切片的大小。因为切 ...
分类:
其他好文 时间:
2019-04-17 09:38:16
阅读次数:
133
哈哈,距离上一次写博客已经快过去一个月了,这这这,好像有点慢啊,话不多说,开始我们的手写动态泛型数组 首先是我们自己写一个自己的动态数组类,代码如下所示: 接着在写一个测试方法: 输出: ok,这就完成了自己的动态泛型数组。 接下来分析一下时间复杂度: ok,今天的数据结构第一篇:封装自己的动态数组 ...
分类:
编程语言 时间:
2019-04-17 09:34:17
阅读次数:
148
目录介绍 01.栈由简单数据实现 1.1 简单数组代码实现 1.2 可能出现问题 1.3 性能和局限性 02.栈由动态数组实现 2.1 基于简单数组存在问题 2.2 第一种解决办法 2.3 第二种解决办法 2.4 动态数组实现栈代码 2.5 性能和局限性 03.栈由链表实现 3.1 使用链表的优势 ...
分类:
其他好文 时间:
2019-04-09 13:59:01
阅读次数:
172