2017.01.03:数组和字符串
来源:互联网 发布:淘宝多少好评一个心 编辑:程序博客网 时间:2024/05/22 02:03
1.数组。“开辟一个数组”相当于系统为你提供了一段连续的内存区间用于存取数据。在C/C++中,标准的数组可以通过在栈上分配空间,或者通过先声明指针,然后用new/malloc(C函数)在堆上动态地分配空间。在旧的C编译器中,不能在栈上定义一个长度不确定的数组,新的C编译器没有这一限制,但是数组长度不定,则不能初始化数组。C/C++编译环境下,二维数组的创建两种方式:在栈上创建intarray[M][N];在堆上创建int**array=new int *[M]。
2.哈希表的本质是当使用者提供一个键,根据哈希表自身定义的哈希函数,映射出一个下标,根据这个下标决定需要把当前的元素存储在什么位置。查找一个元素的平均时间复杂度是O(1),插入一个元素的平摊时间复杂度是O(1)。对于不同的键,哈希函数提供相同的存储地址时,哈希表就遇到了“冲突”。解决冲突的方式有链接法和开放地址法。链接法是利用辅助数据结构(e.g.链表)将哈希函数映射出相同地址的元素链接起来。而开放地址法是指以某种持续的哈希方式继续哈希,直到产生的下标对应上未被使用的存储地址。C++提供了map容器,map不算是严格意义上的哈希表,查找事件由O(1)变为O(logn)。
3.操作系统意义上的堆和栈。栈主要是指由操作系统自动管理的内存空间。当进入一个函数,操作系统会为该函数中的局部变量分配存储空间。事实上,系统会分配一个内存块,叠加在当前的栈上,并且利用指针指向当前一个内存块地址。堆是用来存储动态分配变量的空间。程序员可以随时分配或回收内存,否则会产生内存泄露。
4.vector可以用运算符[]直接访问元素。
0 0
- 2017.01.03:数组和字符串
- 字符数组 和 字符串数组
- 字符数组和字符串数组
- 字符串指针和字符串数组
- 字符串指针和字符串数组
- 关于字符串和数组字符串
- 字符串数组和字符串指针
- 字符串指针和字符串数组
- 第03章_数组和字符串
- 第03章_数组和字符串
- 数组字符串化和字符串数组化
- 字符数组和字符串
- 数组和字符串
- 字符数组和字符串
- 字符数组和字符串
- 字符数组和字符串
- 数组和字符串
- 数组和字符串总结
- 契约——SOA
- Android emoji显示
- 每天一个linux命令(5):rm 命令
- mysql主从同步原理
- 我的 2016
- 2017.01.03:数组和字符串
- Path Sum
- MySQL——InnoDB锁问题(四)
- 在Android中学会使用SVG图片
- 浅谈Android事件总线框架EventBus
- mimetype解释及检索
- python pip安装 镜像资源
- 设计模式的六大原则
- Mysql Err:1366, u"Incorrect string value