C/C++/MFC
Treysure
从最基础做起
展开
-
【C++】【数据结构】一步一步写平衡二叉树[AVL]
转载:有修正,原作者存在一些错误,这里进行了更正。/* 平衡二叉树(Balanced Binary Tree)是二叉查找树的一个进化体 第一个引入平衡概念的二叉树。 特点:对于每一个结点,它的左右子树的高度之差不能超过1, 若插入或删除一个节点之后使得高度之差大于1,就要进行节点 之间的旋转,将二叉树重新维持在一个平衡状态。 这个方案很好的解决的了二叉查找树退...转载 2018-10-16 15:42:30 · 561 阅读 · 0 评论 -
【C】 结构体与结构体指针,->在C语言中的唯一用途
/* 结构体*/#include #include #define STRLEN 128struct Student{ char *name; // 指针变量,指向字符,机器32位大小为32bit/8bit = 4Bytes int age; // 整形变量,4字节 float score; // 单精度浮点型,4字节};int main(){ int i原创 2017-10-01 14:49:13 · 755 阅读 · 0 评论 -
【C】 一道题浅尝指针数组和二级指针
/*【题目】指针数组 二级指针*/#include int main(){ int a = 10, b = 9, c = 8; int *aArr[3] = {&a, &b, &c}; int **aPtr = aArr; char *cArr[3] = {"www.hao123.com", "www.hao234.com", "www.hao346.com"};原创 2017-09-28 15:30:40 · 1202 阅读 · 0 评论 -
【C++】联发科初赛第二题《情报破译》
/*情报破译我方截获敌方一份文档execute.stdin,发现敌方为了防止泄密,句子单词顺序被翻转了。例如,“office. post the attack morning, tomorrow Act”,原文应该是“Act tomorrow morning, attack the post office.”组织需要你的时候到了,请你用程序把文档破译出来。*/#include &...原创 2017-09-10 15:06:47 · 742 阅读 · 0 评论 -
[C/C++] C/C++语言文件读写函数
学习链接:C语言文件读写函数——fputc和fgetc#include #include using namespace std;int main(){ FILE *fpSrc, *fpDes; fpSrc = fopen("execute.stdin", "r"); // 打开[没有则创建]文件读取数据 fpDes = fopen("destfile.stdin", "原创 2017-09-10 22:30:38 · 549 阅读 · 0 评论 -
【C++】【学习笔记】向自定类中添加 combine 和 isbn 成员
/*类添加 combine 和 isbn 成员代码如下:*/#include #include class Sales_data{private:// 私有数据成员 std::string BookNo; // 书籍编号,隐士初始化为空串 unsigned units_sold; // 销售量,显示初始化为0 double SellingPrice; // 原始价原创 2017-09-09 22:55:29 · 466 阅读 · 0 评论 -
【C++】【学习笔记】kolakoski序列:小探纯自然数学序列
#include #include #include "math.h"using namespace std;int main(){ int n, m; cin >> n >> m;//输入两个正整数 vector src(m);//输入m个正整数源数据,容器存 int temp; for (int i = 0; i != m; ++i) { cin >> temp原创 2017-08-31 11:23:57 · 292 阅读 · 0 评论 -
【C】 通过指针修改const变量的值【两种思路,关于指针】
/*【题目】通过指针修改const变量的值【解题思路】通常或者绝大部分情境中,大家看到的教条都是讲const变量无法修改,今天,上一个反例。*/【法一】#include int main(){const int arr[] = {1, 2, 3, 4, 5};int *p = (int *)&(*arr);int i = 0;for(原创 2017-09-25 15:37:32 · 863 阅读 · 0 评论 -
【C】 查找字符串中某个字符出现的次数【两种思路,关于指针】
/*【题目】查找字符串中某个字符出现的次数【解题思路】使用指针*/【法一】#include <stdio.h>void strn(const char *p, const char chr){ int count = 0,i = 0; while(*(p+i)) { if(p[i] == chr)//字符数组存放在一块内存区域中,按索引找字符,指针本身...原创 2017-09-25 15:13:33 · 13763 阅读 · 4 评论 -
【C++】 union详解
实例1#include #include int main(){ union dt { short s; char c[sizeof(short)]; double d; }data; data.s = 0x0102; if (sizeof(short)==2) { if (data.c[0]==1 && data.c[1]==2原创 2017-09-24 14:43:25 · 539 阅读 · 0 评论 -
【C++】 标准运算符
/*static_cast和reinterpret_cast一样,在面对const的时候都无能为力:两者都不能去除const限定。两者也存在的很多的不同,比如static_cast不仅可以用在指针和引用上,还可以用在基础数据和对象上;前面提到过reinterpret_cast可以用在"没有关系"的类型之间,而用static_cast来处理的转换就需要两者具有"一定的关系"了。*///转载 2017-09-24 13:39:02 · 289 阅读 · 0 评论 -
【C++】动态规划
/*动态规划有一个n*m大小的矩阵,其元素值为0或者1,求这个矩阵中全有1组成的最大方块其大小。维数范围:(2<= n <= 50),m(2<= n <= 50)代码如下:*/#include #include #include #include using namespace std;int main(){ ifstream ifs("execute.stdin"原创 2017-09-11 00:39:40 · 393 阅读 · 0 评论 -
【C++】联发科初赛第一题《最大序列和》
/*最大序列和给出一个整数序列S,其中有N个数,定义其中一个非空连续子序列T中所有数的和为T的“序列和”。对于S的所有非空连续子序列T,求和最大的子序列。 以上说明中:N为正整数,N≤1000000,结果序列和在范围(-2^63,2^63-1)以内。 */#include #include #include using namespace std;int main()原创 2017-09-10 15:08:23 · 427 阅读 · 0 评论 -
【C++】 C++11新特性
1.C++11新特性了解但不清楚,好像有印象却又不能有条理的组织语言,程序员是一个必须精准的职业,不容含糊。关于C++11:1.革新2.语法糖3.标准库的扩充4.老语法bug的修复面试官最想听的肯定是第1点,然后第2点。没得聊了就聊第3点、第4点。1.革新有哪些?很多啊。一言以蔽之是啥?——模板。模板肯定不是C++的新事物,但C++11的转载 2017-10-10 23:12:00 · 570 阅读 · 0 评论 -
【数据结构】【C】顺序栈
/* 文件一: 顺序栈头文件 */#ifndef __SEQSTACK_H#define __SEQSTACK_H//#include /* VS2012不支持bool,自己定义 */#define bool int#define true 1#define false 0#define MAXSIZE 1024//typedef int ElemType;typedef转载 2017-11-06 10:12:28 · 499 阅读 · 0 评论 -
【C++】P01.0.DP问题
/** 2017网易秋招笔试题 跳石板 C/C++* 小易来到了一条石板路前,每块石板上从1挨着编号为:1、2、3.......* 这条石板路要根据特殊的规则才能前进:对于小易当前所在的编号为K的 石板,* 小易单次只能往前跳K的一个约数(不含1和K)步,即跳到K+X(X为K的一个非1和* 本身的约数)的位置。 小易当前处在编号为N的石板,他想跳到编号恰好为M的石* 板去,小易想知道最少...原创 2018-04-10 17:00:53 · 285 阅读 · 0 评论 -
【C++】稳定排序和不稳定排序
这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定的人准备的。 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序...原创 2018-08-20 21:01:13 · 4749 阅读 · 0 评论 -
【C++】 fstream 与freopen 小结
转发自: https://blog.csdn.net/seadplus/article/details/7802346 fstream()解析https://blog.csdn.net/jacky_chenjp/article/details/70237418 freopen()解析 C++文件流:fstream // 文件流ifstream // 输入文件流ofstr...转载 2018-08-19 10:24:33 · 2113 阅读 · 1 评论 -
_stdcall 与 _cdecl 区别
_cdecl是C和C++程序的缺省调用方式,每一个调用它的函数都包含清空堆栈的代码,所以产生的可执行文件大小会比调用_stdcall函数的大。函数采用从右到左的压栈方式,VC将函数编译后会在函数名前面加上下划线前缀。 _stdcall是Pascal程序的缺省调用方式,通常用于Win32 Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。VC将函数...转载 2018-08-06 20:49:57 · 431 阅读 · 0 评论 -
【C++】类中成员函数声明后面接 const
const 表示对类中成员函数属性的声明;表示不会修改类中的数据成员;在编写const成员函数时,若不慎修改了数据成员,或者调用了其他非const成员函数,编译器将指出错误;以下程序中,类stack的成员函数GetCount仅用于计数,从逻辑上讲GetCount应当为const函数。class Stack{ public: void Push(int elem)...转载 2018-07-30 16:24:07 · 4419 阅读 · 0 评论 -
【C++】C++成员函数后面跟冒号冒号
/* node class definition*/class Node{public: int data; // data Node *parent; Node *left; Node *right; public: // default Node( ) : data(-1), parent(NULL), left(NULL), right(NULL) { }; ...原创 2018-07-12 15:30:13 · 1884 阅读 · 0 评论 -
【git】Git 工具 - 储藏(Stashing)git fetch/pull
储藏(Stashing)经常有这样的事情发生,当你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,而你想转到其他分支上进行一些工作。问题是,你不想提交进行了一半的工作,否则以后你无法回到这个工作点。解决这个问题的办法就是git stash命令。“‘储藏”“可以获取你工作目录的中间状态——也就是你修改过的被追踪的文件和暂存的变更——并将它保存到一个未完结变更的堆栈中,随时可以重新应用...转载 2018-06-28 20:56:40 · 295 阅读 · 0 评论 -
【C++】bool a:1;这个怎么解释?
Bit field, 位域。意思大概就是你虽然声明自己是个bool(8bit),但我可以只占1bit的空间。#include<iostream>using namespace std;struct S1{ bool b1 :1; bool b11 ;1; bool b111 :1; unsigned a :20; uns...原创 2018-07-03 11:36:02 · 2500 阅读 · 0 评论 -
【C++】了解PDB
What is the use of PDB file?Introduction本文帮助那些处于初级或中级水平,对PDBs格式文件的重要性和为什么需要PDBs格式文件了解不多的开发人员。What is PDBPDB是程序数据库文件的缩写。PDB文件通常是在编译期间从源文件创建的。它将所有符号的列表存储在一个模块中,包含它们的地址以及可能的文件名和声明该符号的行。(来自维基)Why PDB as a...翻译 2018-06-27 16:14:38 · 4560 阅读 · 0 评论 -
【C++】define宏定义中的#,##,@#及\符号
一、#名称:字符串化操作符其作:将宏定义中的传入参数名转换成用一对双引号括起来参数名字符串。使用条件:只能用于有传入参数的宏定义中,且必须置于宏定义体中的参数名前举例:#define example1(instr) #instrstring str=example1(abc); 将会展成:string str="abc";注意:对空格的处理a、忽略传入参数名前面和后面的空格。如:str=examp...转载 2018-06-30 17:00:37 · 3204 阅读 · 1 评论 -
【正则表达】同时包含2个甚至多个关键字 content.contains(keyword1)&&content.contains(keyword2)
有三个字符串如何匹配同时包含两个关键字的字符串str1 = "this is the first check run"str2 = "the first run"str3 = "the first time runing"有两个关键字(“first ”、”check “) 正则表达式怎么写 然后匹配到str1 // regExp (?=.*我是谁)(?=.*C)^.*$// java ...原创 2018-06-29 12:29:35 · 21738 阅读 · 1 评论 -
VS2012版最常用的快捷键
VS2012版最常用的快捷键注释::VS2010是(Ctrl+E,C),VS2012是(Ctrl+K, Ctrl+C),实际操作,按住Ctrl键不放,先按K键,再按C键。相当于Ctrl+K加 Ctrl+C的组合键反註解:VS2010是(Ctrl+E,U),VS2012是(Ctrl+K, Ctrl+U)1. 强迫智能感知:Ctrl+J;2.强迫智能感知显示参数信息:Ctrl-Shift-空格;3.格...转载 2018-06-21 17:09:41 · 322 阅读 · 0 评论 -
【C++】P00.1.clock计时学习
// 这段代码中用两个clcok_t类型的clock函数来计算程序运行时间// C++ 版本#include <iostream>#include <fstream>#include <vector>#include <string>#include <time.h>using namespace std;vect...原创 2018-04-04 09:24:10 · 294 阅读 · 0 评论 -
【C++】类中virtual详解
/*【简介】 Virtual是C++ OO机制中很重要的一个关键字。只要是学过C++的人都知道在类Base中加了Virtual关键字的函数就是虚拟函数(例如函数print),于是在Base的派生类Derived中就可以通过重写虚拟函数来实现对基类虚拟函数的覆盖。 当基类Base的指针point指向派生类Derived的对象时,对point的print函数的调用实际上是调用了Derived转载 2017-09-23 20:58:53 · 5060 阅读 · 0 评论 -
【C++】 类中virtual详解2
/* 关于C++的隐藏规则: 我曾经听说C++的隐藏规则*/#include using namespace std;class Base {public: virtual void f(float x) { cout << "Base::f(float) \t" << x << endl << endl; } void g(float x) { cout << "Base转载 2017-09-23 21:00:22 · 433 阅读 · 0 评论 -
【C++】联发科初赛第三题《进制数转换》
/*进制数转换给你4个正整数。第一个是2进制,第二个为8进制,第三个为10进制,第四个为16进制。请依次给出: 2进制数的8进制、10进制、16进制形式。 8进制数的2进制、10进制、16进制形式。 10进制数的2进制、8进制、16进制形式。 16进制数的2进制、8进制、10进制形式。解题思想,以10进制作为中介*/// 初级版本,仅适用于十六进制原创 2017-09-12 00:35:54 · 561 阅读 · 0 评论 -
【备查】C++程式语言中的所有运算子的优先级和结合性列表
转载自:冷夜 - 网游编程技术以下是C++程式语言中的所有运算子的优先级和结合性列表优先级运算子叙述示例重载性结合性1::作用域解析(C++专有)Class::age = 2;否由左至右2++后缀递增i++转载 2017-07-20 16:53:48 · 565 阅读 · 0 评论 -
【C++】指针测试,单步调试,细观指针本身和指针变量所有变化
#include // #include using namespace std; int main(){ int i = 333; int *pi = nullptr; int *pi0 = NULL; int *pi1 = 0; int *pi2 = &i; int *pi3; int *pi4; int *pi5; pi3 = pi2; //*pi3 = pi原创 2017-07-17 10:23:41 · 399 阅读 · 0 评论 -
【面试常见问题】【C++】指针和引用的区别,有哪些不同点,细细道2
在上一篇中,咱们弄清楚指针和引用的基本区别,下面从「高质量c++编程」的角度剖析指针与引用!一、什么时候用 指针与引用?首先,有几个意识。Firstly, 任何情况下引用都不能用指向空值,引用必须总是指向某个对象。Secondly, 若用某变量(对象)指向另一个变量(对象),且该变量(对象)具备指向任何对象的能力,这时最好将变量(对象)声明为指针,因为指针可以不指向任何变量(原创 2017-07-16 22:18:11 · 436 阅读 · 1 评论 -
【面试常见问题】【C++】指针和引用的区别,有哪些不同点,细细道1
首先咱们弄清楚复合类型(Compound type)这个概念,因为指针和引用是Compound type中的两种!引用(reference):何谓“引用”,这么说吧,相信每个人都有个乳名,后来等到你升学入职啥的发现乳名B格很Low ! 这时候需要为自己起另外一个名字,这就是引用 !引用就是为对象另起了一个名字。先明确一下面这两个‘“混蛋”!变量定义相信不少C原创 2017-07-16 15:00:46 · 978 阅读 · 1 评论 -
【C++】【入门学习】理解复杂的数组声明
首先,数组能存放大多数类型的对象。分一下情况:定义存放指针的数组【难度:一颗星】定义指向数组的指针【难度:三颗星】定义数组的引用【难度:三颗星】int *ptrs[10]; // array containing 10 int pointersint &ptrs[10] = ?; // unwork, wrong writingint (*ptrs)[10] = &原创 2017-07-20 10:40:41 · 291 阅读 · 0 评论 -
【C++】(++a)和(a++)区别解读
简介code&result1 简介++a和a++,都是个表达式,最后的结果就取决于是先加,还是后加;如果是先加,那么最后的表达式的结果就是a的值加1;如果是后加的话,则表达式的值就是原来a的值;无论是先加,还是后加,a的值计算后一定会加1;2 CodeI.在表达式中 若 a = 1, b = a++ ==>> 运算完 b = 1, a = 2 【先赋值,后 + 1】 若原创 2017-03-26 23:02:05 · 6159 阅读 · 0 评论 -
【C++】队列容器 头文件 #include<queue> 解读
简介容器适配器Code1 简介队列容器 头文件 #include 解读这个头文件定义了两个跟队列有关的类----quque、priority_queue,分别实现的是队列 和 优先队列这两个概念。 但是与这两个类模版与其它类模版(vector、array等)最大的不同是,它们是 容器适配器。2 容器适配器顾名思义,容器适配器是对容器的适配,从代码层面来讲原创 2017-03-21 22:05:05 · 6451 阅读 · 0 评论 -
【Get深一度】CButtonST v3.9 (MFC Flat buttons)
一个功能齐全的所有者绘制按钮类 - 它有地段!Download demo project - 902 Kb 点击打开链接http://www.codeproject.com/KB/buttons/cbuttonst/CButtonST_demo.zipDownload source - 19 Kb点击打开链接http://www.codeproject.翻译 2016-05-31 11:26:00 · 4611 阅读 · 3 评论 -
【C++】Visual Studio 2012 MFC界面组件背景美化
MFC添加背景图像的方法: 给按钮添加背景图像的方法:首先,切换“解决方案资源管理器”到“资源视图”,右击项目->添加资源->Bitmap->导入,导入所需的*.bmp图片,如下图,最后在资源视图里的生成新的文件夹Bitmap,如下图所示,特别要记住图片的ID号。 然后在源文件中的OnInitDialog()函数里添加原创 2016-05-30 21:36:49 · 5525 阅读 · 2 评论