C++
记录C++中的细节知识。
liuwp5
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C/C++指针传参的优点
void func(int* a, struct B b, string* c); 形如上式的函数,都是用的指针传参。 我总结的指针传参的优点有: 节约内存。指针类型大小是寻址位数大小,不需要开辟一片内存存储形参临时变量。 节省copy开销。如果使用变量传参,需要将实参拷贝到形参。 函数内的修改对函数外生效。作用类似引用传递。 还有其他优点的话,欢迎请各位大佬补充。 ...原创 2021-02-07 10:28:58 · 846 阅读 · 0 评论 -
C++ int、long、double区别
int 4B/32bit long 32位计算机:4B/32bit <=> int 64位计算机:8B/64bit <=> long long double 8B/64bit原创 2020-07-28 10:16:54 · 589 阅读 · 0 评论 -
for循环i++与++i效率对比
最近发现i++与++i的效率原来不同。 我一直是用 for (int i = 0; i < n; i++) 但是++i效率更高! i++:需要申请一个临时变量保存i进行后续计算,再执行自增。 ++i:直接原地自增,再进行后续计算,无需申请内存。 这个微小的差别在数据量较大的时候会有明显的效率差别,所以我以后还是用++i吧(苦笑 ...原创 2020-07-04 23:51:55 · 1111 阅读 · 1 评论 -
C++ memset简单粗暴的理解
memset函数本来是C语言中对char数组的整体赋值函数。 但是我们一般都是要用它来对int数组或者其他类型的数组进行整体初始化。 具体操作如下: 初始化为0 int array[10]; memset(array, 0, sizeof(array)); 初始化为-1 int array[10]; memset(array, -1, sizeof(array)); 但是! 十进制数的初始化就仅限于此了,即只能赋值为0/-1。 是因为: memset是按字节赋值的,对于char类型来说刚好一个字原创 2020-07-04 17:29:59 · 337 阅读 · 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 · 4123 阅读 · 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 · 165 阅读 · 0 评论
分享