自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (17)
  • 收藏
  • 关注

原创 Android Activity onPause/onResume切换演示

设置流程:创建MainActivity 和 SecondActivity;设置SecondActivity的主题 为Dialog 形式: <activity android:name=".SecondActivity" android:theme="@style/Theme.AppCompat.Dialog" android:label="Second">从MainActivity跳转到SecondActivity;验证结果:SecondActivity 以Dialog形式.

2021-03-07 22:22:17 444

原创 Android Activity 生命周期

注: 上述销毁和重建的流程基于Android29 版本实际验证得出, 验证函数包括onSaveInstanceState()和 onRestoreInstanceState() 。SeekBar的属性设置: android:saveEnabled <SeekBar android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/.

2021-03-07 21:36:55 196

原创 C++ 输出格式控制

整数流的基数:#include <iostream>using namespace std;int main(){ int a = 10; int b = 12; cout << a << " " << b << endl; cout << hex; cout << a << " " << b << endl; // hex 十六进制生效

2020-11-25 22:52:51 531

原创 C++ 输入输出函数

cin: 对应标准输入流 std::in;cout:: 对应带缓冲区的std::out;cerr: 对应不带缓冲区的 std::err, 同时在执行cerr 输出前,会先强制执行 std::cout.flush();clog: 对应带缓冲区的 std::err;上面说的c 对应的是character,即 character log, character err log 等;cppreference 上有对上述几个输出输入库函数的详细定义说明;cerr:The global object

2020-11-25 21:50:11 1384

原创 C++ 多态的几种非典型场景

多态的几种情形:在非构造函数,非析构函数的成员函数中调用虚函数,是多态;class Base {public: void func1() { func2(); } virtual void func2() { cout << "base func2" << endl; }};class Derived : public Base {public: void func2() { // 派生类与

2020-11-07 00:10:29 561

原创 C++ qsort() 与 sort() 区别

sort() 来自C++ 的algorithm 库, qsort()存在C/C++ 两种版本,但是sort() 使用更便捷.First qsort基本快速排序的方法,每次把数组分成两分和中间的一个划分值,而对于有多个重复值的数组来说,基本排序的效率较低。集成在C语言库函数里面的的qsort函数,使用 三 路划分的方法解决这个问题。所谓三路划分,是指把数组划分成小于划分值,等于划分值和大于划分值的三个部分。函数对buf 指向的数据按升序排序。使用方法:void qsort( void *base,

2020-11-06 23:31:02 361

原创 C++ 虚函数和多态

虚函数: 前面有virtual关键字的成员函数就是虚函数。class Base { virtual int Get();};int Base::Get() {}virtual 关键字只用在类定义时的函数声明中,写函数体时不需要。注意:构造函数 和 静态成员函数不能声明为虚函数。 为什么?构造函数如果是虚函数,那么如果通过基类指针调用派生类对象,但是派生类对象还未生成,这个就跟构造函数: 先调用基类构造函数,再调用派生类构造函数 冲突;静态成员函数 跟 对象无关,只跟类本身有关,当对象还不存

2020-11-06 23:20:29 137

原创 C++ 重载类型转换运算符

C++ 类型转换运算符operator data_type (){return xxxx // xxx 即为 data_type 类型, 不需要再定义函数的返回值类型.}注意: 上述即为类型转换运算符函数的定义模型。class Complex {private: int value;public: explicit Complex(int i) : value(i) { } operator int () // 将Complex对象直接转为int类型,同时函数

2020-09-24 23:35:54 2533

原创 C++ 插入/提取运算符重载

C++ 插入/提取运算符重载介绍:“<<” : 左移运算符,因为被重载用于数据流的插入,所以又叫 插入运算符;“>>”: 右移运算符,因为被重载用于从数据流中提取数据,所以又叫提取运算符;使用:根据上一篇博客:运算符重载 可知, 由于插入、提取运算符在ostream/istream 类中已实现定义,所以自定义的类如果需要重载,那么只能重载为自定义类的 友元函数。class Complex{ public: Complex(double r,

2020-09-24 00:17:53 3406

原创 C++ 运算符重载

C++ 运算符重载运算符重载,就是对已有的运算符(C++ 中预定义的运算符) 赋多重的含义, 使同一运算符作用于不同类型的数据时导致不同类型的行为。重载的目的: 扩展C++ 中提供的运算符的适用范围,使之能作用于对象。 这样,同一个运算符,对不同类型的操作数,就会对应不同的行为。本质 运算符重载实质是函数重载。 可以重载为普通函数,或者成员函数。把含运算符的表达式转为对运算符函数的调用,操作数即为运算符函数的参数。 支持运算符的多次重载,因为函数本身就是支持重载的。运算符重载的形式返回值类型

2020-09-20 23:25:34 265

原创 C++ this指针的理解

C++ this指针的理解this 指针: 指向成员函数所作用的对象;注意: 从这个定义即可看出, this存在的前提是对象必然存在。非静态成员函数中可以直接使用this 来代表该函数作用的对象的指针。静态成员函数中不可以使用this 指针,因为静态成员函数是在类上只有一份,跟对象无关,即 对象不存在时就可以执行该函数。class A {private: int i;public: void Hello() { // 编译器翻译为C程序得到: Hello(A* this

2020-09-06 23:47:04 170

原创 C++ 基于范围的for 循环 适用容器列举与分析

C++ 11 基于范围的for 循环,使用起来特别方便,但是 是否所有容器均适合使用? 如何判断某个对象是否 支持 基于范围 的for 循环?基于范围 for循环,基本格式如下: XXX tempContainer; for (auto &item : tempContainer) { cout << item << endl; }这里的XXX 可以替换为任意的容器或者类类型,比如 map<int, int>

2020-07-05 00:29:20 939

原创 C++ Lamda表达式

Lamda表达式作用:Lambda表达式类似Javascript中的闭包,它可以用于创建并定义匿名的函数对象,以简化编程工作。Lambda的语法如下:[函数对象参数](操作符重载函数参数)->返回值类型{函数体}vector<int> iv{5, 4, 3, 2, 1}; int a = 2, b = 1; int foo = 3; for_each(iv.begin(), iv.end(), [b](int &x){cout<<(x + b)&lt

2020-05-28 00:47:10 1557 1

原创 C++ 字面量操作符 operator + 双引号

字面量操作符的声明与使用字面量操作符 RETURN_TYEP operator “” FuncName(paramList)参数类型根据 C++ 11 标准,只有下面这些参数是合法的:即paramList只能是下面这些类型char const*unsigned long longlong doublechar const*, std::size_twchar_t const*, std::size_tchar16_t const*, std::size_tchar32_t const*

2020-05-19 01:11:27 2543

原创 C++ vector 初始化方式小结

vector 有多种初始化方式,本文只讲 跟构造函数相关的,对于成员函数引入的变更此处不做记录。默认构造函数vector<int> tempVec;vector() 默认构造函数,构造一个空的vector 对象tempVec, tempVec.size() 返回为0;2. 拷贝构造函数vector<int> tempVec1;vector<int> tempVec2(tempVec1);vector<int> tempVec3 = tem

2020-05-15 00:34:39 353

原创 C++ std::thread 初级介绍

std::thread 的相关特性总结: 头文件:#include <thread>1) thread t(Start, args….) // 构造函数, Start()为需要线程将要执行的函数,args 清单即为Start()函数的参数列表;注意: 当执行完上述语句,即代表 一个线程已经启动执行;t.join(); // 阻塞当前线程,直至目标线程执行完毕;只可以被调用1次,调用之后,joinable 被设置为false;t.detach(); // 将thre...

2020-05-14 00:24:12 607

原创 C++ 拷贝构造函数 和 赋值运算符 快速区别(口诀)

拷贝构造函数和 赋值运算符 的区别:口诀:拷贝构造函数与赋值运算符的区别是,拷贝构造函数在创建或初始化对象的时候调用,而赋值运算符在更新一个对象的值时调用。 即一个是做初始化,一个是做更新。注意:对象以值传递方式从函数返回时,若接受返回值的对象已经初始化过,则会调用赋值构造函数,且该对象还会调用析构函数,当对象中包含指针时,会使该指针失效,因此需要重载赋值构造函数,使用类似深拷贝或移动构造函数的方法赋值,才能避免指针失效。拷贝构造函数使用场景:1.对象需要通过另外一个对象进行初始化2.对.

2020-05-13 00:47:55 497

原创 C++ 隐式转换 逻辑与场景分析

上图是隐式转换的基本逻辑;1. char/short 直接转换为int,char/short 之间不做转换;2. float 会直接转换为 double;3. type --> unsigned type 总是从有符号数转换为 无符号数; 比如图中未体现的 unsigned long --> long long --> unsigned long long;转换涉及的场景: 算术运算式中,低类型转换为高类型 赋值表达式中,表达式的值转换为左边变量的...

2020-05-13 00:31:45 180

原创 C++ 移动构造与移动赋值

移动构造 与移动赋值https://blog.csdn.net/D_4_Y_/article/details/95228609https://blog.csdn.net/yapian8/article/details/42341307?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-4&am...

2020-05-05 23:57:15 208

原创 LeetCode 3. 无重复字符的最长子串 思路讲解

LC 题目链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/题目思路://使用set记录滑动窗口中出现过的字符;//使用left/rigth分别指向窗口的左边和右边,起始位置均为第一个字符;//判断r...

2020-05-02 22:43:51 238

原创 LeetCode 21. 合并两个有序链表 思路讲解

LC 题目链接:https://leetcode-cn.com/problems/merge-two-sorted-lists/题目思路 1: 链表本身有序,合并2个升序的链表为一个升序的链表;对于链表的操作,常有 能画出来就能做出来的说法。 L1: 1 -> 2 -> 3 L2 : 1 -> 3 -> 4对于链表的操作,最后都要返回第一个...

2020-05-02 00:31:44 382

原创 LeetCode 1051. 高度检查器 思路讲解

LC 题目链接:https://leetcode-cn.com/problems/height-checker/题目思路: 根据题目给出的样例可以看出结果就是数组排序前后变化过的位置的个数。第一反应肯定是数组排序,然后比较。 vector<int> tempVec(heights); sort(tempVec.begin(), tempVec.end()); 然...

2020-05-01 18:53:15 139

原创 LeetCode 1413. 逐步求和得到正数的最小值 思路讲解

LC 题目链接:https://leetcode-cn.com/problems/minimum-value-to-get-positive-step-by-step-sum/题目思路: 这是一个简单题,从题目中的信息就可以看出,这个是数组的累加和有关; 那就需要记录数组从左到右的累加和,而最小的正整数,只要我们计算出最小的累加和,对其取绝对值然后加1 即可。注意:从用例里...

2020-04-27 00:23:49 218

原创 LeetCode 46 全排列问题思路讲解

LC 题目链接:https://leetcode-cn.com/problems/permutations/题目思路:1. 拿到题目的第一反应就是枚举,把所有可能的情形都列出来,同时题目的样例也只有3个数,很好列出来;但是列出来还是做不出来这个题目。2. 回想是否做过类似的题目,这个就是一个选择的问题,比如左右括号各有几个,然后可以有多少种组合,这个时候就可以想到使用回溯法来解决这...

2020-04-25 21:49:40 178

原创 summary

1. string 相关的转换to_string(int/double/float) -->stoi(), stof(), stod()string(len, char)string(char*, len)2. string 的替换;string s = "123";int pos = s.find("2");if (pos != string::npos) { s...

2020-03-22 13:17:40 111

原创 Shell实现自动更新目录名称与文件中版本号信息与时间戳

背景:修改如下样例目录下所有目录的版本号信息与时间戳;修改如下样例文件中的版本号信息与时间戳;样例目录:$ find template_patch_dir/template_patch_dir/template_patch_dir/ONIP_SNE_V300R002C80CP1006_SUSE11_D2015-12-10template_patch_dir/ONI

2015-12-19 19:11:55 2828

原创 C++Primer 的string相关函数

10.8/9  这两天看的是关于string的一些函数,写在这里:  1. 今天在小程序里用错了的substr()函数;string s="hello world";string s2 = s.substr(6, 5);// 6:子串的起始位置,5:子串的长度;cout 不知道在C++中数字标示的起始位置,其第二个参数就是长度?而迭代器就是[begin,end) 这种区间模

2013-10-09 23:54:02 474

原创 C++ stringstream的小结

stringstream是继承stream来的,stringstream的功能类似于C 语言中的sprintf(), sscanf()这两个函数,即可以方便的实现数据类型和string类型之间的转换;  使用stringstream需要包含的头文件是;搜索一下,发现一篇很详细的关于stringstream的用法介绍,网址就贴在这里了:http://www.cppblog.com/San

2013-10-06 00:38:11 678

原创 C 语言详解 之 name 的分隔

<br /><br />#include <stdio.h><br />#include <string.h><br />int main()<br />{<br />   FILE *inp,*outp;<br />   inp=fopen("input.txt","r");<br />   outp= fopen("result.txt","w");<br />   char name[80];<br />   char* status = fgets(name, 80, inp);<br />   <

2011-02-16 21:34:00 765

原创 C 语言详解 之 字符串后缀

<br /><br />#include <stdio.h><br />#include <string.h><br />#define MAX 100<br />int main()<br />{<br />  char str1[MAX],str2[MAX];<br />  printf("please input a string:/n");<br />  scanf("%s",str1);<br />  printf("please input another string:/n");<br /> 

2011-02-16 20:59:00 936

原创 C 语言详解 之 单词反转

#include #include #define  MAX_LEN 100int main(){   char str[MAX_LEN];   printf("input a string separated by a blank:/n");   gets(str);    printf("%s/n",str);   char *words[MAX_LEN];   int length = strlen(str);   int count=0;   int i=0;   while(' '== str[i

2011-02-16 20:53:00 735

原创 C语言详解 之 数值列表积

<br /><br /> <br />#include <stdio.h><br />#include <math.h><br />#define input "list.txt"<br />#define max 5 <br />int fgetList(FILE*inp, int list[], int max_num);<br />int main()<br />{<br />    FILE *inp;<br />    int count;<br />    int x[max],y[max],z

2011-02-12 11:40:00 427

原创 C语言详解 之 集合的并

<br /><br /> <br />#include <stdio.h><br />#include <math.h><br />#define max 20<br />#define error -8<br />int sort_array(double x[],double y[],int x_num, int y_num, double z[]);<br /> int main()<br />{<br />    double x[max];<br />    double y[max];<br /

2011-02-12 10:52:00 646

原创 C语言详解 之 错误率的计算

#include #define  input "examdat.txt"#define  output  "report.txt"int fgetAnswers(int*pos, char res[], FILE*inp);int main(){  FILE*inp,*outp; inp = fopen(input,"r"); outp = fopen(output,"w"); int n; char ans[100]; int ID; char result[100]; int missed[100];

2011-02-12 10:19:00 1202 1

原创 C语言详解 之 密码校验

<br /><br />#include <stdio.h><br />int main()<br />{<br /> char ch;<br /> char blank = ' ';<br /> scanf("%c",&ch);<br /> int sum=0;<br /> while('/n'!=ch)<br /> {<br />  sum += (int)ch;<br />  sum %=64;<br />  scanf("%c",&ch);<br /> }<br /> sum+=(int)blank

2011-02-08 17:10:00 602

原创 C语言详解 之 函数参数的实现

<br /><br />#include <stdio.h><br />#include <math.h><br />void trap(double a,double b, int n, double f(double arg));<br />double g(double x);<br />double h(double x);<br />int main()<br />{<br /> double a,b;<br /> int n;<br /> printf("区间左端点:");<br /> scan

2011-02-08 16:50:00 367

原创 C语言详解 之 浮点数的表示误差

#include int main(){ for(double  i=0.1;i  printf("%.1f ",i); return 0;}

2011-02-08 16:21:00 2437

原创 C 语言详解 之 三个问题的判断

<br />#include <stdio.h><br />#include <math.h><br />int problem_a(int x);<br />int problem_b(int x);<br />int problem_c(int x);<br />void display_ans(int num,int *a, int *b, int *c);<br />int main()<br />{<br /> bool  flag;<br /> do{<br />  int a,b,c;<br

2011-01-31 22:34:00 490

原创 C 语言详解 之 棒球安打率的计算

<br /><br />#include <stdio.h><br />int main()<br />{<br /> FILE*inp, *outp;<br /> inp = fopen("input.txt","r");<br /> outp = fopen("output.txt","w");<br /> int ID;<br /> char ch;<br /> double result;<br /> double num_O = 0.000;<br /> double num_H = 0.000;

2011-01-31 22:10:00 1412

原创 C 语言详解 之 持续处理数据

<br /> <br /> <br /><br />#include <stdio.h><br />int main()<br />{<br /> int status=0;<br /> int error;<br /> int num;<br /> do{error=0;<br />  printf("please input a number:");<br />  status = scanf("%d",&num);<br />  if(!status)<br />  {<br />   printf(

2011-01-31 21:32:00 369

C++学习资料.zip

C++ 学习资料,方便查询

2020-08-08

MinGW64_6.0_win10.rar

MinGW64_6.0_win10.rar

2020-05-10

mingw-w64-v6.0.0.tar.bz2

mingw64 6.0 版本工具,源码编译版本。

2020-05-10

string_vector_set_算法相关总结.docx

string, vector, set, 算法:快慢指针等 相关总结

2020-04-11

MFC版Sniffer

MFC的工作界面, 使用主线程和工作线程分别实现主界面的显示和抓包的工作

2011-12-21

控制台版Sniffer

使用控制台的方式实现局域网内的嗅探,能够解析TCP,UDP,ICMP格式的数据包

2011-12-21

sourceInsight 使用快捷键文件

SourceInsight使用手册 快捷键文件 其中的快捷键是相当有用的,如Shift + F8 高亮显示指定的字符串

2011-10-25

打印日志的C源代码

能够详细打印日志 输出打印语句所在行 同时能够在日志文件中输出打印语句所在文件

2011-10-25

sourceInsight源文件

方便快速查看代码的一款软件,能够全局查找关键字符串,能够高亮显示指定字符串

2011-10-25

编译原理 LL(1)文法 两个版本

共有两个版本:一、网上淘到的代码,使用的图存储产生式关系;二、完全使用陈火旺的编译原理中的理论:先构造FIRST集合,然后是FOLLOW集合,最后是预测分析表的构造。放到网上,望大家共享!!

2010-12-25

计算方法中的求积分方法

计算方法中的求积分方法:龙贝格算法 高斯塞德尔算法 龙哥库塔算法 牛顿算法

2010-12-14

算法设计中的有趣算法

算法设计中的一些有趣算法,如:矩阵鞍点的求取,矩阵翻转,多项式求解等

2010-12-14

编程实现关机和音乐播放器的改进版

编写程序,调用 API函数实现windows 系统关机,待机,重启,简易播放器

2010-12-10

全排列的算法 翻转法 换位法 字典序法

全排列的几种不同算法,方便快捷的实现求全排列。思路简单清晰

2010-12-09

MFC计算器 vc计算器

在VC6.0中实现了就算整数的加减乘除带括号运算; 在MFC中实现了相应的运算

2010-10-27

二叉树 先序线索化 完整代码

二叉树先序线索化的完整类实现代码 先序线索化二叉树的左子树的最后一个孩子后插入 新节点

2009-12-10

中序线索化二叉树的c++代码

个人认为比较简洁 使用递归方式 创建使用扩展二叉树更加便捷 且有部分先序线索化代码 不够完善

2009-11-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除