1、数组当作参数传到另一个函数中是,此时其实传的是一个地址即数组首元素地址。
那就不可以通过sizeof来判断数组大小了。一种解决方法是,同时在函数参数列
表中把数组的大小传进去。
2、经常在Cpp代码的函数参数中看到BtreeNode* &Node。比较两个情况:
bool inserttree(BtreeNode* &Node,int element){...}
bool inserttree(BtreeNode* Node,int element){...}
二者的差别:
答:
第二个传的指针其实是一个复制品,可以在函数体里面修改指针所指向的区域,但修改函数中的此
指针,则对函数外的原本的指针无任何影响。
第一个传的指针就是原本的函数外的指针的本身,是一个别名。当然,要想实现这个功能也可以用
二级指针来实现。
3、关于写递归函数时,要先考虑功能与过程,最后再考虑出口。
4、set与map
map是key对应value;
而set关键字即值,即只保存关键字的容器set就是关键字的简单集合。当只是想知道一个值
是否存在时,set是最有用的。
5、c++ std中set与unordered_set区别和map与unordered_map区别类似:
set、map基于红黑树实现,红黑树具有自动排序的功能,因此内部所有的数据,在任何时候
都是有序的。
unordered_set、unordered_map基于哈希表实现,数据插入和查找的时间复杂度很低,几乎是
常数时间,而代价是消耗比较多的内存,无自动排序功能。底层实现上,使用一个下标范
围比较大的数组来存储元素,形成很多的桶,利用hash函数对key进行映射到不同区域进行保存。
一些C/C++的知识点、经验总结
最新推荐文章于 2023-03-23 07:30:05 发布