C++
Jiu_R
coder
展开
-
VS利用开发人员命令提示符查看类的对象模型
查看C++类对象模型原创 2022-09-07 10:05:26 · 273 阅读 · 0 评论 -
C++头文件的一些注意事项
同一个文件a要分成a.h和a.cpp两个,a.cpp中写定义(函数,类等),a.h中写声明若b.cpp和c.cpp需要调用a.cpp中定义的函数f(),则分别在b.cpp和c.cpp前面加上#include “a.h”,这样在预处理阶段会展开f()的声明,这样编译器就知道f()是个函数调用,而不会理解为是其它东西(例如,可能理解为一个类f的实例化)在a.cpp中也要#include “a.h”...原创 2022-04-03 21:02:15 · 3968 阅读 · 0 评论 -
设置栈大小
只需要在链接器命令行加入命令:-Wl,--stack=6710886467108864B = 67MB原创 2021-05-15 09:50:11 · 685 阅读 · 5 评论 -
vector的扩容机制
当向vector插入元素时,若超出了end_of_storage原创 2021-03-24 09:06:27 · 837 阅读 · 0 评论 -
memset
memset(void* dest, int ch, size_t len);//将dest开始的len个字节,全部置为ch只能用于字符串,不能用于c++的容器头文件位于<cstring>常用的ch为0,-1分别将指定位置的len字节全部置为0,1int h[n];memset(h, 0x3f, sizeof h);//将h[i]全部置为0x3f3f3f3f,即刚刚>10^9的一个数[模拟哈希表](https://www.acwing.com/activity/content原创 2021-03-23 20:37:13 · 87 阅读 · 0 评论 -
读文件
转载自ios::sync_with_stdio(false)原创 2021-03-19 11:15:37 · 70 阅读 · 0 评论 -
NRV优化
转载自:关于NRV优化原创 2021-03-18 11:03:07 · 257 阅读 · 0 评论 -
二进制最低位1
学习自如何求一个数的二进制最低位1在哪里补码:① 正数的补码为本身;② 负数的补码:例如负数为a,对应正数为b,利用a+b=0写负数a补码的方法1:先填符号位1,其余位在b的基础上全部取反,再+1最高位是1,其余所有位a和b相反,因此a+b=全1,再+1溢出为0;写负数a补码的方法2:在b基础上,保留最低位1和右侧的0不变,再把左侧全部位取反例如b的最低位1是100,且左侧全部位相反,因此a+b会因为相同的最低位100导致溢出为0求一个数x的最低位1:最优解O(1):以前面的原创 2021-03-16 20:32:54 · 2042 阅读 · 0 评论 -
泛型编程(GP)和面向对象编程(OOP)
OOP是把data和实现合起来放进一个class;GP是把二者分开,二者可以各自开发,他们之间通过迭代器联系起来;、例如sort对一个容器的某个范围内元素进行排序,在实现中进行一些具体操作,而具体排序的是哪种容器并不关心,只要能支持我所需的各种操作就可以,例如需要ite + n的操作,所以操作的容器必须提供随机访问迭代器,因此list不支持std::sort。因此容器和算法可以各自开发,之间以迭代器为纽带,这样的算法能操作的容器就不止单单一种,所以叫泛型算法GNUC++2.9中的alloc变成了.原创 2021-01-17 21:26:59 · 382 阅读 · 0 评论 -
对于by reference的函数形参的一些很容易错的点:
这一块内容迷茫了很久一直不清楚,今天搞透作为记录:对于by reference的函数形参,如果确实该函数不会修改引用绑定的内容,就必须声明为by reference to const,这里是必须,不是建议,尽管在很多情况下并不会出问题,只是因为没涉及到下面这些case:先说结论:声明为by reference to const而不是by reference的作用如下:1.使用const可以避免无意中修改数据的编程错误2.使用const使函数能够处理const和非const实参,否则将只能接受非c原创 2021-01-08 17:12:04 · 263 阅读 · 0 评论 -
sizeof和strlen
sizeof是一个关键字而不是函数,求出传入的操作数所占的字节数;strlen是的一个库函数,求字符串长度;sizeof传入字符串时,要一直找到字符串末尾,包括\0在内;strlen遇到第一个\0为止,不算\0在内;sizeof可以计算各种类型的字节数:各种内置类型,指针等;strlen必须传入char*二者都用于字符串时,容易混淆;毕竟只有sizeof可用于其他各种类型,而strlen只能用于字符串;字符串由多种表示:char* p = "lixu"; char a [ ] = ".原创 2020-11-17 13:17:41 · 644 阅读 · 0 评论 -
四种函数配接器:
下文中的仿函数是泛称,平时用于STL算法的判别式或判别式类的对象属于仿函数的一种特殊情况(即要求返回类型为bool)STL中的函数配接器,是指能够将仿函数和另一个仿函数或仿函数和某个值或仿函数和某一个一般函数结合起来形成一个新的仿函数在STL中函数配接器一共有四个,分别是:1.对于接受两个参数的仿函数op(param1, param2):bind1nd(op ,value) //相当于构成op(value,param2),即用value覆盖掉op的第一个参数bind2nd(op ,valu.原创 2020-11-14 16:18:18 · 214 阅读 · 0 评论 -
c++不允许定义引用的引用
添加链接描述引用本身不是一个对象,因此无法定义引用的引用;int main(){ int ival=1024; int &refVal=ival; int &(&refVal2)=refVal; return 0;}但有两种方法可以间接定义引用的引用原创 2020-11-14 16:59:20 · 961 阅读 · 0 评论