- 博客(1084)
- 资源 (52)
- 收藏
- 关注
原创 老程序员解Bug的通用套路
程序员在很多人的印象里是一份严(ku)谨(bi)的职业,也是一个被搞怪吐槽乐此不疲的职业,程序员们面对复杂的代码敲打电脑时连眉头都不会皱一下,但是有一个词却是他们痛苦的根源,它就是Bug。 记得刚毕业入行时,我们老大派给我和另外一个新来同事的第一件事就是修Bug,要不是在学校敲过几年代码,还真不知道如何下手!和我一起进公司的另外一个同事完全就是以“看戏者”的身份,看我搞了...
2018-06-06 09:25:29 12191 25
原创 C++17新属性详解
C++17的入选特性有:(1).非类型模板参数的 auto 模板参数分为两种,一种是类型模板参数,也是我们用得最多的一种:template <typename T, typename U>auto add(T t, U u) { return t+u;} 里面的 T 和 U 都是类型模板参数。另一种是非类型模板参数,它可以让不同的字面量成为模板的参数:te...
2018-05-27 21:59:38 54031 5
转载 C++大牛的博客
1. C++大牛的博客 Bjarne Stroustrup的博客: Bjarne Stroustrup’s HomepageBjarne Stroustrup,不认识的可以去面壁了,没有他,就没有我们现在的饭碗。Bjarne Stroustrup是丹麦人,目前任教于TAMU。他的Homepage和他的书籍The C++ Programming Language一样
2018-01-21 21:37:00 5605 1
原创 C++模板详解
一.C++模板的定义: 模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。模板是一种对类型进行参数化的工具;二.使用模板的目的: 能够使得程序员编写与类型无关的代码。比如编写了一个交换两个整型int 类型的swap函数,这个函数就只能实现int 型,对double,字符这些
2017-05-31 21:19:42 2388 3
原创 Qt的5种常用布局搭建
Qt布局详解: 界面开发首先要对整个界面进行布局,使窗体上的所有的控件必须有一个合适的尺寸和位置。那么做出来的界面才看起来美观。那么如何对界面进行布局呢?Qt提供了一些类负责排列窗体上的控件,主要有:QHBoxLayout,QVBoxLayout,QGridLayout,QFormLayout,QStackLayout。(布局管理类)这些类简单易用,无论在代码中还是用Qt Design
2016-09-30 09:06:16 5426 1
原创 优秀程序设计的18大原则
优秀程序设计的18大原则1、避免重复原则(DRY - Don’t repeat yourself)编程的最基本原则是避免重复。在程序代码中总会有很多结构体,如循环、函数、类等等。一旦你重复某个语句或概念,就很容易形成一个抽象体。2、抽象原则(Abstraction Principle)与DRY原则相关。要记住,程序代码中每一个重要的功能,只能出现在源代码的一个位置。
2016-07-11 17:07:57 6224
原创 互联网大裁员背景下C++程序员如何突围?
假如你没有背景也没有资源,那就努力靠自己,用奋斗扬起生活的风帆,攀登智慧的巅峰,叩开成功的大门,点燃光辉灿烂的明天,永远相信“三分天注定,七分靠打拼”。
2024-04-21 12:00:05 1117 7
原创 C++代码优化思路及27个建议
在软件开发中,代码优化是一项关键活动,尤其是在性能敏感的应用场合,如嵌入式系统、游戏开发、系统级软件以及大数据处理等领域。代码运行效率影响体验度和系统效率。代码优化不仅可以提高程序的执行效率和响应速度,还有助于减少资源消耗(如CPU时间和内存使用)和提升用户体验。今天我个人将C/C++代码优化的一些基本思路做一个简单总结,希望对大家在开发过程中的代码优化有所帮助。
2024-04-21 11:28:39 739
原创 ZeroMemory、memset 和 “={0}” 三者用于清零操作的区别:
在C或C++编程中,清零内存的操作是一个常见需求。ZeroMemory、memset 和使用 ={0} 是实现这一目的的三种不同方式。所以,再次强烈建议:类(class)只使用构造函数进行初始化,不要调用ZeroMemory进行清零操作。
2024-04-21 11:12:47 580
原创 C++文件操作函数
C++提供的文件操作功能强大且灵活,从基础的文件读写到复杂的文件系统操作,几乎可以满足所有需求。了解并掌握这些操作对每一个C++开发者都是必要的。希望本文能帮助大家入门C++中的文件操作,并在实际开发中加以应用。
2024-04-21 10:50:28 765
原创 C++系统时间操作函数
在深入具体的函数之前,我们首先需要理解C++中时间的基本概念。C++标准库提供了多种方式来获取和操作时间,主要可以分为以下几类:C风格时间操作C++11及以后的现代时间库库定义了三种主要的时间类型:时间点(time points)、持续时间(durations)和时钟(clocks)。时钟有三种类型:system_clock、steady_clock和high_resolution_clock。
2024-04-21 09:59:13 944
原创 C++字符操作及字符串打印
在C++中,处理字符和字符串是基本操作之一,涉及到各种数据类型和函数。今天,我对C++中的字符和字符串打印进行一个全面的总结,包括基础的字符处理以及使用标准库中的字符串类及字符串打印。
2024-04-21 09:47:46 807
原创 strtok()函数详解
strtok() 函数用于将字符串分割成一系列的令牌(tokens)。这个函数声明在 头文件中,其原型如下:分解字符串为一组字符串。s为要分解的字符,delim为分隔符字符(如果传入字符串,则传入的字符串中每个字符均为分割符)。首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。在头文件#include中。strtok() 是一个强大的工具,用于在C/C++语言中分割字符串,它非常有用,但需要小心使用,以避免安全问题和数据完整性问题。
2024-04-21 09:33:39 944
原创 C++中箭头操作符(->)和点操作符(.)有什么不同?
最后,总结一下,点操作符()用于直接访问对象的成员,而箭头操作符(->)用于通过对象的指针访问成员。选择使用哪一个操作符,取决于你是直接拥有对象还是拥有指向对象的指针。了解这两个操作符的区别对于编写清晰且高效的C++代码至关重要。希望通过本文的解释和示例,对大家尤其是C++初学的小伙伴能有所帮助,能更好地在项目中正确使用这两个操作符。
2024-04-13 15:43:52 33 1
原创 奇校验及校验和的帧校验机制详解
此代码首先定义了设置奇校验位的setOddParity函数,然后定义了计算校验和的calculateChecksum函数。在main函数中,我们创建了一个示例数据帧,并打印出带有奇校验和校验和的结果。采用奇校验及校验和的帧校验机制,可以增加数据传输的可靠性。在这种机制下,每个数据字节包含一个用于奇校验的校验位,确保每个字节中“1”的数量为奇数。此外,在每个数据帧的末尾添加一个校验和字节,这个校验和是除通讯标志外的所有字节(包括数据和校验位)之和的补码。以下是采用奇校验及校验和机制的。
2024-04-13 14:55:03 27
原创 C++异常处理机制详解
throw Exception(1,"错误!");C++的异常处理机制是一个强大的特性,它在正确使用时可以极大地增强程序的健壮性和错误处理能力。帮助我们写出质量更高的C++代码。
2024-04-13 14:23:30 495
原创 fopen文件操作详解(全网最全)
fopen通过对fopen的各种模式标识符的深入了解和正确使用,可以使文件操作在C程序中既安全又高效。希望本文能帮助大家更好地掌握这一工具,优化编程实践。
2024-04-13 11:29:30 38 1
原创 C++开源库大全
程序员要站在巨人的肩膀上,C++拥有丰富的开源库,这里包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。
2024-04-13 10:18:40 26
原创 C++内存泄露处理方法
在使用C++进行软件开发时,内存管理是一个核心且不可回避的问题。不当的内存管理不仅会导致内存泄露,还可能引发程序的不稳定甚至崩溃。本文将详细探讨C++中内存泄露的成因、诊断方法以及预防和修复策略,以提高开发者在实际工作中对内存管理的掌控能力。内存泄露指的是程序在申请内存后,未能在不再使用它时正确释放,导致内存资源无法被再次有效利用。长时间运行的程序如果存在内存泄露,将会逐渐消耗完系统所有可用内存,影响程序性能,甚至导致程序和系统的崩溃。正确管理内存是C++编程中至关重要的技能。
2024-04-13 10:17:43 132
原创 C++常量变量作用域及使用详解
对一个C++变量来说,有两个属性非常重要:作用域和生命周期,它们从两个不同的维度描述了一个变量--时间和空间。顾名思义,作用域就是一个变量可以被引用的范围,如:全局作用域、文件作用域、局部作用域;而生命周期就是这个变量可以被引用的时间段。不同生命周期的变量,在程序内存中的分布位置是不一样的。一个程序的内存分为代码区、全局数据区、堆区、栈区,不同的内存区域,对应不同的生命周期。在C++中,变量的作用域和生命周期是两个核心概念,它们定义了变量何时可以被程序访问以及变量存在的时间长度。
2024-04-05 22:16:28 29 1
原创 C++ Boost ASIO网路通信库
Boost ASIO(Asynchronous I/OLibrary)是Boost库的一部分,由Andrei Alexandrescu创建。它设计用于解决网络和低级通信问题,特别是异步I/O,使开发人员能够轻松地编写高性能的网络应用程序。ASIO的核心理念是提供一个简洁且易于使用的接口,同时保持底层的性能和灵活性。Boost ASIO是一个强大且灵活的网络通信库,其异步I/O模型使得网络编程变得更加简单高效。虽然学习曲线可能会稍有陡峭,但一旦熟悉,它将极大地提升我们的网络编程能力。在实际项目中,结合。
2024-04-05 21:41:48 28 1
原创 关于学习C++编程的50个观点
8. 如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的c++水平并没有和你通关的能力一起变高——其实可以时刻记住:学c++是为了编游戏的;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的;40. 既然决定了学c++,就请坚持学下去,因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的;28. c++绝不是所谓的c的“扩充”——如果c++一开始就起名叫z语言,你一定不会把c和z语言联系得那么紧密;
2024-04-05 20:35:41 1007 1
原创 C++常用第三方库及使用注意事项
在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。
2024-04-05 20:27:03 34 1
原创 十个海量数据处理方法总结
处理海量数据是当今很多行业面临的挑战,尤其是在大数据时代。有效管理和处理海量数据对于获取洞察力、提升效率和做出更好的决策至关重要。下面是十种常用的海量数据处理方法,对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能并不能完全覆盖所有的问题,但是这样的一些方法也基本可以处理绝大多数遇到的问题。尤其是高级开发的笔试面试都会涉及,下面做一个总结,希望对大家有所启发和帮助。
2024-03-31 16:53:46 29
原创 十道海量数据处理面试题
位图法比较适合于这种情况,它的做法是按照集合中最大元素max创建一个长度为max+1的新数组,然后再次扫描原数组,遇到几就给新数组的第几位置上1,如遇到5就给新数组的第六个元素置1,这样下次再遇到5想置位时发现新数组的第六个元素已经是1了,这说明这次的数据肯定和以前的数据存在着重复。对每个小文件,统计每个文件中出现的词以及相应的频率(可以采用trie树/hash_map等),并取出出现频率最大的100个词(可以用含100个结点的最小堆),并把100个词及相应的频率存入文件,这样又得到了5000个文件。
2024-03-31 14:09:00 645
原创 VMware虚拟机与Windows主机之间文件共享
两种方法各有优势,共享文件夹功能操作简便,而网络共享更接近实际网络操作的场景,可以按照实际需求选择合适的方法进行文件共享。
2024-03-31 13:05:09 645
原创 VMware虚拟机与Windows主机之间相互复制粘贴文件实现
平时我们从主机往虚拟机拷贝文件时,需要通过共享文件夹或者移动存储设备(U盘或移动硬盘)来做中转,那么有没有什么好办法能够直接把主机的文件或数据复制到虚拟机,这样就可以既方便又节省时间,那么有没有这样的办法呢?
2024-03-31 13:04:42 1253
原创 C++模板类 容器之map及对象副本 深/浅拷贝等问题浅析
(1).一个未命名的临时string 对象被构造并传递给与map 类相关联的下标操作符,这个对象用Anna 初始化,(2).在word_count 中查找Anna 项,没有找到(3) .一个新的键/值对被插入到word_count 中。当然键是一个string对象持有“Anna”。但是值不是1而是0(4).插入完成接着值被赋为1用下标操作符把map 初始化至一组元素集合,会使每个值都被初始化为缺省值。然后再被赋值为显式的值,如果元素是类对象而且它的缺省初始化和赋值的运算量都很大。
2024-03-25 22:18:35 124
原创 Visual Studio 2022安装使用教程-详细
在属性页对话框下配置属性,选择链接器-> 系统,然后选择编辑框旁边子系统属性。在显示的下拉列表菜单,选择控制台 (/SUBSYSTEM: CONSOLE)。选择确定以保存所做的更改。若要生成项目时,从生成菜单选择生成解决方案或者直接按快捷键F7。输出窗口会显示生成过程的结果。我们可以看到,输出“Hello World!”,在右边的三角箭头下来列表中选择“c++17”在项目的属性页对话框中选择。3)、 点击2022下载,会弹出登录。11)、选择C++17语言标准。8)、安装完之后,点击“
2024-03-25 22:16:31 171
原创 Navicat 安装详解
Navicat premium非常功能强大的多连接数据库管理工具,提供了简单数据库开发的基本和必需的功能,可以为专业开发人员提供满足他们所有特定需求的功能,而且对于刚接触数据库服务器的用户来说也很容易学习。复制请求码到注册机中的 Request Code 里面,之后点击 Activation Code 下面的 Generate 按钮就会生成一个激活码。点击 Generate 生成按钮就会生成一个许可证秘钥,将许可证秘钥复制后再打开 Navicat Premium 15。点击手动激活后会生成一个请求码。
2024-03-23 12:30:20 2544
原创 此虚拟机可能已被移动或复制如何选择?
从上面可以看出,移动虚拟机主要是改变虚拟机在存储系统中的位置,而不改变其内部配置;而复制虚拟机则创建了一个与原虚拟机完全相同的新虚拟机,适合用于备份或迁移到不同的硬件环境,这里我选择了复制虚拟机。1.“我已移动虚拟机” :表示打开后的虚拟的网卡的mac地址不变,如果复制本地的,同时开机在一个vmnet可能造成冲突。2.“我已复制虚拟机” :表示打开后的虚拟机的网卡的物理地址是新生成的,建议不懂的就选这个。
2024-03-23 12:08:02 440
原创 VMware安装Ubuntu(2024最新最全版)
Ubuntu是一款基于Debian的Linux操作系统,它以易用性和稳定性著称,是许多Linux爱好者的首选。本文将介绍如何在VMware虚拟机中安装Ubuntu操作系统,让读者可以在Windows或macOS系统上体验Ubuntu的魅力。
2024-03-17 21:07:27 2070
原创 Visual Studio 2019安装使用教程-详细
在属性页对话框下配置属性,选择链接器-> 系统,然后选择编辑框旁边子系统属性。在显示的下拉列表菜单,选择控制台 (/SUBSYSTEM: CONSOLE)。选择确定以保存所做的更改。若要生成项目时,从生成菜单选择生成解决方案或者直接按快捷键F7。进入之后,目前是最新的2022版本,为了项目的兼容性,我们选择较早的2019版本。”,在右边的三角箭头下来列表中选择“c++17”在项目的属性页对话框中选择。3)、 点击2019下载,会弹出登录。11)、选择C++17语言标准。8)、安装完之后,点击“
2024-03-17 21:06:55 624
原创 Vmware16安装指南-详细
VMware Workstation允许用户在单台物理计算机上同时运行多个虚拟机操作系统。VMware Workstation是一款桌面虚拟化软件,支持Windows、Linux和macOS等主流操作系统。通过VMware Workstation,用户可以在一台物理计算机上创建和运行多个虚拟机,每个虚拟机都有独立的操作系统、硬件资源和网络设置。这使得用户可以在不影响主机操作系统的情况下,安全地测试和运行不同的应用程序、开发环境和操作系统。
2024-03-14 08:44:51 621
原创 Visual Studio 2017安装使用教程-详细
在属性页对话框下配置属性,选择链接器-> 系统,然后选择编辑框旁边子系统属性。在显示的下拉列表菜单,选择控制台 (/SUBSYSTEM: CONSOLE)。选择确定以保存所做的更改。若要生成项目时,从生成菜单选择生成解决方案或者直接按快捷键F7。进入之后,目前是最新的2022版本,为了项目的兼容性,我们选择较早的2017版本。”,在右边的三角箭头下来列表中选择“c++17”在项目的属性页对话框中选择。3)、 点击2017下载,会弹出登录。11)、选择C++17语言标准。8)、安装完之后,点击“
2024-03-14 08:44:28 962
原创 C++泛型详解
如果要在函数模板内部使用这样的类型,必须显示告诉编译器这个名字是一个类型,否则编译器无法得知它是一个类型还是一个值。模板形参可以是表示类型的类型形参(type parameter),也可以是表示常量表达式的非类型形参(nontype parameter)。编译器将确定用什么类型代替每个类型形参,用什么值代替每个非类型形参,然后产生并编译(称为实例化)该版本的函数。在定义的类模板中,使用模板形参作为类型或值的占位符,在使用类时再提供具体的类型或值。函数模板是一个独立于类型的函数,可以产生函数的特定类型版本。
2024-03-10 21:58:54 1428 1
原创 浅谈加密技术
通过我们的了解,对称加密的实现比较简单,但是安全性不是很高,一般用在对安全要求级别不是很高的情况下,但是非对称加密比较复杂,但是安全性很高,在实际应用中需要我们综合利弊考虑.
2024-03-10 21:42:28 38
原创 蓝桥杯大赛及备战建议
通常,蓝桥杯省赛及国赛在每年的5月份举行,但是在此之前,2023年12月、2024年3月,都可以参加蓝桥STEMA考试。STEMA考试同蓝桥杯省赛、国赛同属蓝桥体系,形式、难度、范围、题型、考试系统对标蓝桥杯省赛,STEMA考试一年多次,非常适合作为蓝桥杯赛事的模拟考试使用,提前熟悉题型及操作方式。蓝桥杯是目前国内最大的信息技术竞赛,2024年15届蓝桥杯青少年组STEMA考试报名的时间已公布,STEMA赛事组别有哪些?,获得认可度高的编程比赛证书,无疑会增加从千万名考生中脱颖而出的筹码,上一届有超过。
2024-03-03 21:52:02 7808
Navicat安装指导及安装资源
2024-03-23
vncserver和vncviewer
2017-06-01
大数据资料集锦
2016-03-30
Hadoop技术全套图书
2016-03-21
Apache Flume Distributed Log Collection for Hadoop
2016-03-21
《Hadoop技术内幕:深入解析MapReduce架构设计i与实现原理》
2016-03-21
《Hadoop技术内幕:深入解析Hadoop Common和HDFS
2016-03-21
jQuery瀑布流经典布局源码
2016-01-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人