- 博客(34)
- 收藏
- 关注
原创 .h加了.cpp依赖的.h,也需要依赖那个.h所在的库
a.cpp依赖b.h, 依赖b.so,能编译过, 现在b.h挪到a.h, a.h所在编译配置文件,也要加上依赖b.so才能编译过。编译.h和.cpp是当成两个文件编译的,.h找依赖的时间比.cpp早,.h有时编译和.cpp编译目标文件不同, .cpp写的依赖的库.h是继承不了的。
2024-07-08 22:43:01
107
原创 推测sort(s.begin, s.end, less<>())可以代替sort(s.begin, s.end, less<void,或int, 或char等任意类型>())
sort(s.begin, s.end, less<>())和sort(s.begin, s.end, less()), sort(s.begin, s.end, less()), sort(s.begin, s.end, less())编译都能过,而且结果一样,应该是因为是和less<类型>和这个类型无关,因为没用到less<类型x> 类型x。
2024-06-29 18:07:33
175
原创 nowcoder华为OJ题练习记录
这篇文章好在又说到了标准输入是键盘,这下才理解了这个模糊的地方,我现在理解是这样,cin不是从控制台读的,是从输入缓冲区读的,是内存中的地方,有回车cin才会去读,控制台看到的也是从键盘读到显示的,和cin是读的是有关的东西,只是控制台还要将键盘输入内容显示在屏幕上,终端上不用回车就拿到了。当一轮执行结束,虽然程序位置没停在while(cin >> n), 但是应该是要停在那的,ctrl z后刚好停在while()之后第一句。但是,链表的结构定了,只有next指针,没有pre指针, 快慢指针不错。
2024-06-22 09:53:03
131
原创 extern “C“ functionName(arg a), extern外面的“某” 使用“某“语言方式编译、修饰函数名,使这个函数能被外面的“某”语言的其他函数调用
extern “C” functionName(arg a), extern使用"某"语言方式编译修饰函数名使这个函数能被“某”语言的其他函数调用,典型应用是做为库文件,被应用代码使用。理解chatgpt答案后编写。
2024-06-21 16:18:14
400
原创 把派生类对象的指针值赋值给基类指针发生什么
推测什么也没发生,只是提前赋给,写好代码,想调用派生类的函数,也可以提前写好,等运行时按地址去找就行了,而早绑定是编译时就把调用的函数地址已经明确了。网上举的来自英雄联盟的攻击和被攻击的晚绑定函数就是很符合设计初衷的例子。而没有继承关系的两个类的对象A,B,A的指针能接受B的指针值吗?推测应该能,如果不调用A,B都有的函数时不出错,不像继承时想用的多态晚绑定,必须调用都有的函数,才运行时不报错找不到这个函数。
2024-06-07 11:30:34
143
原创 string的erase(offset)是删除从offset开始的全部,不是这一个
string的erase(offset)是删除从offset开始的全部,不是这一个。
2024-06-04 12:51:37
420
原创 c++ OOP学习笔记20240601
动态绑定或叫晚绑定或叫迟绑定,就是函数前加virtual的作用,叫虚函数意思太不具体了,不知道哪里不真实。子类和父类同名的话,会直接隐藏父类的方法,不管其他签名部分相同不相同,比如参数类型,个数。override 骑在什么之上,凌驾于,推翻,重写或叫覆写?父类原来的方法子类的指针调用不到了?虚表的作用,vtable, overridable table.多态的实现靠的是指针,类的初始化是把函数被加载到内存。函数名后的const什么意思,不能修改成员变量。摘抄加自己的话:类名.函数是静态绑定,
2024-06-01 22:59:50
136
原创 【c++ 虚函数前的virtual感觉应该叫迟绑定的late bound】
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S
2024-06-01 10:43:32
968
转载 why char * type can assign to string type
In C++, you can assign a char* to a std::string because std::string has a constructor that accepts a const char* and creates a std::string object with the content of the C-style string. This implicit or explicit conversion allows you to work seamlessly wit
2024-05-27 14:31:26
19
原创 删除字符串最少次数出现字符,最长20个
map{char, times}, vector{map.pair}, sort(vec.begin, vec.end, [](left, second){left.second< right.second})排序,等于第一个个数的这些字符是出现次数最小的字符加入set, 把string在set中的删除。
2024-05-22 08:59:26
318
原创 git detached from id(HEAD commit id)原因
可能是因为git pull origin master,本地没有分支,git pull origin master:master应该就好了。
2024-05-22 08:57:26
122
原创 git detached from id(HEAD commit id)原因
可能是因为git pull origin master,本地没有分支,git pull origin master:master应该就好了。
2024-05-20 21:23:34
155
1
原创 -j32编译出的东西有问题,编译脚本并行时可能会出错
有时候build.sh -j32编译出的东西有问题,编译脚本并行时可能会出错。-j4低线程还行,不超过自己核数。
2024-05-14 20:12:15
111
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人