内容 1. 动态内存和智能指针 2. 动态数组 3. 使用库:文本查询程序 4. 总结 0. 摘要 动态分配的对象(dynamically allocated objects)的生命(lifetime)独立于其被创建的地方,他们一直会存在到被明确释放(free)。 为了让使用动态分配的对象更安全,库 ...
分类:
编程语言 时间:
2020-03-25 09:15:20
阅读次数:
87
1 #include <iostream> 2 #include<stdlib.h> 3 4 5 using namespace std; 6 7 int main() 8 { 9 //创建动态数组 10 int a[10]; //静态数组 堆栈上创建的 11 int n; 12 cin>>n; 1 ...
分类:
编程语言 时间:
2020-03-22 10:39:47
阅读次数:
80
ArrayList源码分析 ArrayList是collection下的集合,底层是动态数组实现,其中的数据可以重复 初始化 ArrayList初始化,有三种方式,一般不指定容量的情况下,初始化只会将空元素集合赋值给相应的元素数据集合, ~~~java // 所以,初始化的集合,容量为0,是一个Ob ...
分类:
其他好文 时间:
2020-03-17 21:00:34
阅读次数:
57
初始化ArrayList的底层是一个动态数组,ArrayList首先会对传进来的初始化参数initalCapacity进行判断如果参数等于0,则将数组初始化为一个空数组,如果不等于0,将数组初始化为一个容量为10的数组。 扩容时机当数组的大小大于初始容量的时候(比如初始为10,当添加第11个元素的时 ...
分类:
其他好文 时间:
2020-03-17 19:51:45
阅读次数:
80
1. 切片的定义和初始化 切片是基于数组类型的封装,非常灵活,可以自动扩容 切片是真正意义上的动态数组,而且是一个引用类型,切片指向一个底层数组 定义切片 创建切片方式 2. 切片操作 | 操作 | 含义 | | | | | s[n] | 切片 s 中索引位置为 n 的项 | | s[:] | 从切 ...
分类:
其他好文 时间:
2020-03-17 14:01:56
阅读次数:
68
new 和动态数组 为了让 分配一个对象数组,要在类型名之后跟一对方括号,在其中指明要分配的对象的数目,返回指向第一个对象的指针,方括号中的大小必须是整型,但不必是常量: 也可以使用一个表示数组类型的类型别名来分配一个数组, 表达式中就不需要方括号了: 分配一个数组会得到一个元素类型的指针 虽然称 ...
分类:
编程语言 时间:
2020-03-15 13:24:11
阅读次数:
73
以下内容均摘抄自他人博客,正确性有待考察,请以质疑的态度阅读学习,若有错误请留言指正 stl用过哪些容器? Vector:动态数组 List:双向链表 Deque:与vector类似,但支持双端操作。 Set:关联容器 集合,底层红黑树实现。 Map:关联容器 键值对,底层红黑树实现。 Stack: ...
分类:
其他好文 时间:
2020-03-14 19:59:21
阅读次数:
59
数组的概念 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。除了数组,链表、队列、栈等也是线性表结构。 使用数组的优势在于:数组支持随机访问,根据下标随机访问的时间复杂度为 ...
分类:
编程语言 时间:
2020-03-14 13:02:25
阅读次数:
80
基本摘抄自百度百科 1,使用条件 头文件 <vector> 和 using namespace std; (因为他是属于 C++ 的) 2, 定义:简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。(度娘) 3,使用 : vector <int> c; // 长度未知,未初 ...
分类:
其他好文 时间:
2020-03-06 19:12:44
阅读次数:
55
动态数组 vector 定义方式:vector<int> a; //二维vector<int>a[100] 在末尾压入容器:a.push_back(x);//二维 a[i].push_back(x) 在末尾弹出容器:a.pop_back(); 清空容器:a.clear(); 查询元素个数:a.siz ...
分类:
其他好文 时间:
2020-03-06 15:11:39
阅读次数:
72