美文网首页
剑指 offer 读书笔记

剑指 offer 读书笔记

作者: 修司敦 | 来源:发表于2018-12-06 15:55 被阅读0次

2.3 数据结构

  1. STL 的 vector 在开始为数组开辟较小的空间,然后往数组中添加数据。当数据的数目超过了数组的容量的时候,重新分配一块新的更大的空间。每次扩充容量的时候,新的容量是前一次的 1.5 倍 (VS) 或 2 倍 (GCC)。看这个链接了解为什么是这样子扩张。把之前的数据复制到新的数组中,然后把之前的内存释放。

  2. 当数组作为函数的参数进行传递的时候,数组就会自动退化成同类型的指针:

    int getSize(int data[])
    {
        return sizeof(data);
    }
    int main()
    {
        int a[] = {1, 2, 3, 4, 5};
        cout << getSize(a) << endl;
        //4
        return 0;
    }
    
    
  3. 递归的代码看起来很简洁,但是有一个问题:每一次调用函数,都需要在栈中分配空间以保存参数、返回地址以及临时变量。由于每个进程被分配的栈空间是有限的,所以当调用层级很深的时候,可能导致该进程的函数调用栈溢出。而且往栈中压入数据和弹出数据都需要时间。所以一般来说非递归的代码要比递归代码的效率高一点。

相关文章

  • 全网最全剑指offer题目解答

    【剑指offer】Java版代码(完整版) 【剑指offer】1-10题 【剑指offer】11-20题 【剑指o...

  • 剑指offer 和 leetcode题目

    剑指offer leetcode

  • 单例模式

    单例模式 最近在看《剑指offer》,根据《剑指offer》的讲解,结合《effectiveJava》简单学习了一...

  • 年龄排序

    摘抄资料:《剑指offer》

  • 剑指offer读书笔记

    数据结构 数组 数组可以说是最简单的一种数据结构,它占据一块连续的内存并按照顺序存储数据,由于数组中的内存是连续的...

  • 剑指Offer——读书笔记

    @[C++|面试|数据结构|算法] 高质量的代码 代码的规范性 书写清晰 布局清晰 命名合理 代码的完整性 完成基...

  • 剑指 offer 读书笔记

    2.3 数据结构 STL 的 vector 在开始为数组开辟较小的空间,然后往数组中添加数据。当数据的数目超过了数...

  • 读书笔记| 剑指offer

    date: 2016-06-02 14:00 剑指 offer 何海涛blog: http://zhedahht....

  • 剑指offer

    第一题:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,...

  • 《剑指offer》

    4.调整数组顺序使奇数位于偶数前面 题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇...

网友评论

      本文标题:剑指 offer 读书笔记

      本文链接:https://www.haomeiwen.com/subject/zupnxqtx.html