个人笔记
文章平均质量分 54
编程学到死
大学生,自学python/c/c++中,有c的基础,发布自学笔记,用尽可能无术语的方式分享自己的理解,希望和我一样的自学者能少走一些弯路
展开
-
在正确的时候使用多线程的探究
今天在使用OpenMP与C++进行多线程编程的初次尝试时,出现了一个与预想相悖的现象:在对一个for循环使用多线程运行时,随着线程数的增加,程序的运行时间反而在增加。虽然可能老手一听这个说法就知道问题出在哪里,但是对于我这个刚接触多线程编程的菜鸟来说,我花费了许多的时间在思考和解决这个疑惑上,最终找到了问题所在。因此我在这里总结一下自己的思路。今天的这个问题让我记住了,在编写并行程序时,一定要注意操作是否能够并行,尽量不要让多个线程同时访问相同的内存。原创 2024-03-26 00:01:19 · 284 阅读 · 0 评论 -
ssh服务器客户端和服务端配置密钥验证的问题与注意要点
这段时间在学习ssh远程控制,并且尝试着配置无需密码的密钥验证方式,但是在将公钥发送过去并配置好相关配置,但是在客户端对服务器进行访问的时候仍然是需要密码的,在翻阅了无数的博客和教程并调试之后,才最终解决这个问题,因此我决定在这里对整个配置流程进行一个总结分析,以便于自己今后回顾,也给各位和我一样的ssh小白一个少走弯路的机会。原创 2024-03-12 19:01:50 · 594 阅读 · 1 评论 -
对多态的探究:原因,原理,以及实现
C++中的第三大特性就是多态。如果要打个比方什么是多态:有一群人要买票,于是我们抽象构建了一个基本对象Human,并定义了买票方法BuyTicket为原价买票;但是对于人群中之的某些特殊人群,比如小孩、军人、又或者老人,他们应该半价买票,于是我们应该抽象构建Human的派生类SpecialHuman,并重定义买票方法BuyTicket为半价买票。然后我们还应该有一个函数实现:面对基类与派生类,能自动识别是什么类并调用相应的方法。对这一过程的实现,就是多态。多态有两种:静态多态和动态多态静态多态:原创 2021-09-22 19:00:56 · 109 阅读 · 0 评论 -
菱形继承问题探究
在类的继承时,会出现这样的一种可能性:菱形继承我打个比方什么是菱形继承:一个品牌A下有两个小品牌B和C,然后B和C又一起共同研发了D,这就是一个菱形继承,如果用代码实现的话,就是这样的class A {...};class B : public A {...};class C : public A {...};class D : public B, public C {...};那么这就会出现一个问题,D会拥有两份来自A的某种数据,这两份数据分别继承自B和C。但是D并不需要两份数据,这时原创 2021-09-21 19:13:33 · 100 阅读 · 0 评论 -
c语言学习-----代码的编译与链接(对obj重定义报错的探究
将写好的源文件(.cpp)通过编译器的处理生成可执行文件(.exe)的过程称之为翻译,其中包括编译和链接两个过程。其中编译是将项目中的所有源文件(.cpp)通过编译器都分别单独生成一个目标文件(.obj)(不理解这个会产生一个重大的错误),随后,连接器会将项目中的所有目标文件链接起来,成为一个可执行文件。这就是翻译的过程。这里说一下我曾经很喜欢犯的一个错误,这个错误就和编译的过程有关。曾经我很喜欢在头文件中定义一个变量,总觉得这个变量是头文件中对实现头文件中的函数功能很有用,然后在编译的时候,经常出原创 2021-09-01 00:46:36 · 374 阅读 · 0 评论 -
错误调试分析——自学日常(内存访问错误
先上错误代码#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){ int i = 0; int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; for (i = 0; i <= 12; i++) { arr[i] = 0; printf("%d ", i); } return 0;}这个代码的在debug模式下运行会不断地重复输出0~11。首先这个代码有个很明显原创 2021-08-26 13:01:09 · 69 阅读 · 0 评论 -
格式化输出----个人学习笔记
格式化输出共有三种:printf, sprintf, snprintf它们的函数原型如下:printf: int printf(const char *format, ...);怎么用大家都知道sprintf: int sprintf(char *str, const char *format, ...);把输出保存到str中snprintf: int snprintf(char *str, size_t size, const char *format, ...);把输出的前size个保存原创 2021-08-22 22:10:55 · 35 阅读 · 0 评论