![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
记录C++中的细节知识。
liuwp5
这个作者很懒,什么都没留下…
展开
-
C/C++指针传参的优点
void func(int* a, struct B b, string* c);形如上式的函数,都是用的指针传参。我总结的指针传参的优点有:节约内存。指针类型大小是寻址位数大小,不需要开辟一片内存存储形参临时变量。节省copy开销。如果使用变量传参,需要将实参拷贝到形参。函数内的修改对函数外生效。作用类似引用传递。还有其他优点的话,欢迎请各位大佬补充。...原创 2021-02-07 10:28:58 · 681 阅读 · 0 评论 -
C++ int、long、double区别
int4B/32bitlong32位计算机:4B/32bit <=> int64位计算机:8B/64bit <=> long longdouble8B/64bit原创 2020-07-28 10:16:54 · 461 阅读 · 0 评论 -
for循环i++与++i效率对比
最近发现i++与++i的效率原来不同。我一直是用for (int i = 0; i < n; i++)但是++i效率更高!i++:需要申请一个临时变量保存i进行后续计算,再执行自增。++i:直接原地自增,再进行后续计算,无需申请内存。这个微小的差别在数据量较大的时候会有明显的效率差别,所以我以后还是用++i吧(苦笑...原创 2020-07-04 23:51:55 · 918 阅读 · 1 评论 -
C++ memset简单粗暴的理解
memset函数本来是C语言中对char数组的整体赋值函数。但是我们一般都是要用它来对int数组或者其他类型的数组进行整体初始化。具体操作如下:初始化为0int array[10];memset(array, 0, sizeof(array));初始化为-1int array[10];memset(array, -1, sizeof(array));但是!十进制数的初始化就仅限于此了,即只能赋值为0/-1。是因为:memset是按字节赋值的,对于char类型来说刚好一个字原创 2020-07-04 17:29:59 · 197 阅读 · 0 评论 -
GNU、GCC、g++、gcc之间的区别和联系
GNU:可以看作一个开源平台。里面有大量开源项目。GCC:GNU中的编译器项目。集成了多种语言的编译器,包括有gcc、g++。g++:GCC中的c++编译器。gcc:GCC中的c编译器。包含关系如下:GNU -> GCC -> g++ -> gcc以上是以我理解的最简单直接的方式给出的区别联系。...原创 2020-07-09 18:51:17 · 3136 阅读 · 0 评论 -
C++ map、unordered_map、set区别
map基于红黑树/二叉搜索树BST存储内部有序查找时间复杂度O(logn)<key, value>unordered_map基于哈希表存储内部无序查找时间复杂度O(1)<key, value>set与map前3点性质<key,>原创 2020-07-28 08:18:14 · 100 阅读 · 0 评论