多年老c++程序员在静态数组这里翻船了

事情的起因事情是这样子滴,有一次我在代码评审的时候,发现有同事想使用运行时才能够获取到的值,去改变一个静态数组的元素个数,我当时就很诧异,因为我心里知道这样是不可行的,静态数组的元素个数在编译时就需要是固定不变的,一般只能是常量或者宏定义,否则编译就不能通过。但是当时我提出来以后,把原因说了,包括写出这个代码的人和另外一位同事都没理解,弄得我有点怀疑自己了,

cpp加油站 cpp加油站 2021.06.08
0
0
上次说了静态数组可变长,今天知道原理了

之前发了一篇文章,讲c99变长数组的,链接如下:发出去以后有了挺多的反馈,因为这并不是一个很难的知识点,所以如果接触过的自然而然是知道,但还真有挺多人表示不知道和不相信这个事,同时我上次也只是简单的说了一下这个事,没有去讲解这个变长静态数组的实现原理,今天补上。先看一下思维导图: 1. 变长数组是长度一直可以变的吗变长数组,那么是长度一直可以变的吗,到底什么

cpp加油站 cpp加油站 2021.06.29
0
0
上次说了静态数组可变长,今天知道原理了
js高频手写大全

1. 手写instanceofinstanceof作用:判断一个实例是否是其父类或者祖先类型的实例。instanceof 在查找的过程中会遍历左边变量的原型链,直到找到右边变量的 prototype查找失败,返回 false2. 实现数组的map方法3. reduce实现数组的map方法4. 手写数组的reduce方法reduce() 方法接收一个函数作为累

Dax Dax 2021.04.12
0
0
js高频手写大全
超详细的 JS 数组方法

数组是 js 中最常用到的数据集合,其内置的方法有很多,熟练掌握这些方法,可以有效的提高我们的工作效率,同时对我们的代码质量也是有很大影响。 一、创建数组 1.使用数组字面量表示法 var arr4  ;   //创建一个空数组 var arr5  20;   // 创建一个包含1项数据为20的数组 var arr

凝雪探世界 凝雪探世界 2021.02.05
0
0
3 手写Java HashMap核心源码

手写Java HashMap核心源码 上一章手写LinkedList核心源码,本章我们来手写Java HashMap的核心源码。 我们来先了解一下HashMap的原理。HashMap 字面意思 hash map,map是映射的意思,HashMap就是用hash进行映射的意思。不明白?没关系。我们来具体讲解一下HashMap的原理。 HashMap

九路 九路 2020.11.06
0
0
3 手写Java HashMap核心源码
1 手写ArrayList核心源码

手写ArrayList核心源码 ArrayList是Java中常用的数据结构,不光有ArrayList,还有LinkedList,HashMap,LinkedHashMap,HashSet,Queue,PriorityQueue等等,我们将手写这些常用的数据结构的核心源码,用尽量少的代码来揭示核心原理。 下面我们来手写ArrayList的核心源码 首先

九路 九路 2020.11.02
0
0
44道JS难题,做对一半就是高手

国外某网站给出了44道JS难题,试着做了下,只做对了17道。这些题涉及面非常广,涵盖JS原型、函数细节、强制转换、闭包等知识,而且都是非常细节的东西,透过这些小细节可以折

凯特林 凯特林 2021.03.07
0
0
44道JS难题,做对一半就是高手
4.1 手写Java PriorityQueue 核心源码

本章先讲解优先级队列和二叉堆的结构。下一篇代码实现 从一个需求开始 假设有这样一个需求:在一个子线程中,不停的从一个队列中取出一个任务,执行这个任务,直到这个任务处理完毕,再取出下一个任务,再执行。 其实和 Android 的 Handler 机制中的 Looper 不停的从 MessageQueue 中取出一个消息然后处理是一样的。 不过这个需

九路 九路 2020.11.07
0
0
4.1 手写Java PriorityQueue 核心源码
JS 手撕-经典面试题

引言首先出这篇文章,一方面是为了记录巩固我所学的知识,明白面试的高频考点。不鼓励大家背题的,初衷是希望总结的一些面试题能帮助你查漏补缺,温故知新。这些题并不是全部,如果你还想看得更多,可以访问,目前已经有552道大厂真题了,涵盖各类前端的真题,欢迎加入我们一起来讨论~函数 call 语法:fn.call(obj,...args) 功

卡尔 卡尔 2021.03.23
0
0
JS 手撕-经典面试题
js 的 forEach,map,filter,some,every,find(es6),reduce详解

forEach() 定义和用法 forEach()方法用于调用数组的每个元素,并将元素传递给回调函数 注意: forEach()对于空数组是不会执行回调函数的。 语法 array.forEach(function(currentValue,index,arr),thisValue) 参数 function(currentValue,index,a

LinMeng LinMeng 2021.02.01
0
0