c++
卖火柴的小男孩2020
你在驴背上看世界,世界在驴胯下看你
展开
-
:Node<T>* & fun( Node<T>* & p );这里同时用*和&有什么作用?
我在数据结构中的树的实现经常用到如下方式:Node<T>*&fun(Node<T>*&p);请问它和:Node<T>*fun(Node<T>*p);Node<T>&fun(Node<T>&p);的使用有什么不同?请分别从形参和返回值两...原创 2020-04-21 11:38:11 · 1191 阅读 · 0 评论 -
C/C++ 一些知识点总结
临时整理的,有些可能不对。1)如果一个类里面有const-qualifier或reference, compiler不会为它生成default copy assignment operator函数。2) Hidden是指子类和父类有同名函数,但又没有virtual关键字。这里函数只要同名就可以了,参数并不需要match。也就是说,compiler只要在子类看到有这个函数名,即使参数不mat...转载 2020-01-19 13:55:41 · 680 阅读 · 0 评论 -
c/c++字节序转换
字节序(byte order)关系到多字节整数(short/int16、int/int32,int64)和浮点数的各字节在内存中的存放顺序。字节序分为两种:小端字节序(little endian)和大端字节序(bigendian)。小端字节序:低字节存放在内存低地址,例如对两字节整数0x0100(十进制数256),低字节00放在低地址(假设地址为0x0041f880),高字节01放在高地址0x0...转载 2020-01-08 09:56:14 · 1003 阅读 · 0 评论 -
C++ 基础篇
算法算法描述伪代码:自然语言 + 程序语言 + 数学语言(只要能描述清除自己的算法思维即可)流程图算法设计与实现构造算法解决问题按照自顶向下、逐步求精的方式进行程序语言实现递归算法理论上,任何递归都可以使用循环方法解决函数调用栈框架汉诺塔问题问题分析是否存在某种简单情形,问题很容易解决只有一个圆盘时最简单是否可将问题分解成性质相同单规模较小的问...转载 2020-01-07 14:50:20 · 539 阅读 · 0 评论 -
C++函数对象operator()
函数对象:定义了调用操作符()的类对象。当用该对象调用此操作符时,其表现形式如同普通函数调用一般,因此取名叫函数对象。举个最简单的例子:class A{ public: int operator() ( int val ) { return val > 0 ? val : -val; } }; 类A中定义了操作符 ( ...转载 2020-01-07 11:43:58 · 427 阅读 · 0 评论 -
boost::function
概念 function是一个函数对象的”容器”,概念上像是c/c++中函数指针类型的泛化。它以对象的形式封装了原始的函数指针或函数对象,能够容纳任意符合函数签名的可调用对象。因此,它可以被用于回调机制,暂时保管函数或函数对象,在之后需要的时机再调用,使回调机制拥有更多弹性。 初比较 #include<iostream>#include"boost/functi...原创 2020-01-07 11:00:46 · 260 阅读 · 0 评论 -
STL-lower_bound
lower_bound编辑讨论本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!lower_bound()返回一个 iterator 它指向在[first,last)标记的有序序列中可以插入value,而不会破坏容器顺序的第一个位置,而这个位置标记了一个不小于value 的值。该函数为C++STL内的函数。中文名lower_bound函数原型...原创 2020-01-06 16:14:30 · 317 阅读 · 0 评论 -
boost/bind.hpp
纯C++风格,没有使用#include <boost/bind.hpp> 1 #include <iostream> 2 #include <algorithm> 3 #include <functional> 4 #include <vector> 5 6 class add :public std::bin...原创 2020-01-06 09:50:00 · 777 阅读 · 0 评论 -
信号与槽机制
观察者模式信号(被观察者)-> 槽(观察者)以一个Button多个动作为例:基本代码 需要在编写Button时就将各种action的可能性列出,即代码耦合太大,编写时就要考虑引入其他对象纯虚函数 只需编写一个Button基类,通过继承得到不同action的Button类,即通过继承对象实现重用,但由于是对Button类的扩展,也不是很方便回调函数 编写一个But...转载 2020-01-03 16:37:21 · 286 阅读 · 0 评论 -
C++虚函数表
一、背景知识(一些基本概念)虚函数(Virtual Function):在基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数。纯虚函数(Pure Virtual Function):基类中没有实现体的虚函数称为纯虚函数(有纯虚函数的基类称为虚基类)。C++ “虚函数”的存在是为了实现面向对象中的“多态”,即父类类别的指针(或者引用)指向其子类的实例,然后通过父类的指...原创 2020-01-02 17:47:20 · 2968 阅读 · 0 评论 -
c++ 指针和引用
前言在实际代码中,经常需要获取一个或一些变量经过某个函数功能模块后的值,可以使用return返回变量或指针(将全局变量带入形参,在函数内部修改其值的方法显然是行不通的,因为形参只是拷贝,也切记勿要返回局部指针变量,因为函数退出后会销毁该指针从而造成内存错误),当然,亦可以使用指针或引用带入功能模块。在刚学习指针时,常常容易把指针*和引用&混在一起,因为它们均表示地址。这里说明一下指针和引...转载 2020-01-02 16:32:33 · 115 阅读 · 0 评论 -
c++11标准特性
c++11标准特性0 简介 1 候选变更 2 C++核心语言的扩充 3 核心语言的运行期表现强化 3.1 右值引用和 move 语义 3.2 泛化的常数表示式 3.3 对POD定义的修正 4 核心语言建构期表现的加强 4.1 外部模板 5 核心语言使用性的加强 5.1 初始化列表 5.2 统一的初始化 5.3 类型推导 5.4 基于范围的 fo...原创 2020-01-02 09:34:11 · 124 阅读 · 0 评论 -
c++ 通过 this 指针获取类的使用权限
//ABase类 - 基类class ABase{public: ABase(); void GetABaseName(){std::cout << "this is ABase" << std::endl;}};//AFunc类 - 子类#ifndef AFUNC_H#define AFUNC_H#include "abase....转载 2019-12-31 16:08:58 · 207 阅读 · 0 评论 -
c++ 编程过程中遇到的问题积累
问题一在使用继承时,遇到下面的问题error: ‘void BaseServer::StartServer(BaseServer*)’ is inaccessiblevoid StartServer(BaseServer *m_bserver);即父类无法调入子类参数,原因竟是继承时忘记加public导致私有继承问题二在c中常常使用一个总头文件来定义全局变量,如果只在总头文...原创 2019-12-30 17:20:08 · 772 阅读 · 0 评论 -
android jni原生代码POSIX线程调用 Java_com_massky_shareptr_MainActivity_nativeWorker(JNIEnv *env, jobject)
static void* nativeWorkerThread (void* args) { JNIEnv* env = NULL; if (0 == gVm->AttachCurrentThread(&env,NULL)) { NativeWorkerArgs* nativeWorkerArgs = (NativeWorkerArgs *) ar...原创 2018-06-06 10:08:22 · 159 阅读 · 0 评论 -
android jni等待POSIX线程结束后,函数在返回用pthread_join
for (int i = 0; i < threads; i++) { void* result = NULL; if (0 != pthread_join(handles[i],&result)) { jclass excetionClazz = env->FindClass("java/lang/RuntimeE...原创 2018-06-06 14:05:54 · 545 阅读 · 0 评论 -
CMake简要教程,什么是 CMake,【C/C++】从零开始的cmake教程
1, https://www.jianshu.com/p/bbf68f9ddffa -----CMake简要教程2,http://www.hahack.com/codes/cmake/----什么是 CMake3,https://blog.csdn.net/gg_18826075157/article/details/72780431 ---【C/C++】从零开始的cmake教程...原创 2018-06-13 21:48:40 · 643 阅读 · 0 评论 -
【C/C++】从零开始的cmake教程(下篇)
通过编写CMakeLists.txt,然后运行cmake命令可以自动生成对应Makefile,从而控制make的编译过程。因此在学习cmake之前,建议先对make有个大致的了解。(欢迎阅读本人编写的另一篇博客【C/C++】从零开始的Make教程)。 1.单个源文件的编译如果你的项目只有一个源文件main.cpp,那么只需要在同一个目录下新建一个名为CMakeLists.txt的文件,并添加下面的...原创 2018-06-14 09:30:53 · 341 阅读 · 0 评论 -
【C/C++】从零开始的Make教程(上篇)
【C/C++】从零开始的cmake教程通过编写CMakeLists.txt,然后运行cmake命令可以自动生成对应Makefile,从而控制make的编译过程。因此在学习cmake之前,建议先对make有个大致的了解。(欢迎阅读本人编写的另一篇博客【C/C++】从零开始的Make教程)。 1.单个源文件的编译如果你的项目只有一个源文件main.cpp,那么只需要在同一个目录下新建一个名为CMake...原创 2018-06-14 09:29:37 · 1901 阅读 · 0 评论 -
android studio jni开发 用C++的文件操作类如(fopen、ifstream等)找不到的问题
CrossApp开发时, 存放在Resource下的文件在android环境下使用assets/..路径 使用C++的文件操作类如(fopen、ifstream等)找不到的问题当时遇到的问题是我在Resource文件夹下放入.lrc 的歌词文件。用C++来获取lrc歌词数据并解析。在ios上是没问题的。但是在安卓上就歇逼了。发现问题是没找到文件,在判断is_open()时就通不过了。想过会不会是在...原创 2018-06-19 22:00:36 · 5794 阅读 · 0 评论 -
C++学习路线
从网上搜集的一些资料。定制了一套学习C++的路线《The C programming language》必读《C++ Primer》,号称是一本可以让你从C或JAVA程序员转为一个真正的C++程序员的入门参考书,必读。《The C++ programming language》,C++之父,人称B教主著作,在看过C++ primer后,应该可以跳章选读。《Think in c++》...原创 2019-01-03 14:04:01 · 7460 阅读 · 9 评论 -
位运算
java中value += ((buffer[1] & 0xFF) << 8);是什么意思?这个是什么意思?目的是什么?value += ((buffer[3] & 0xFF) << 24);value += ((buffer[2] & 0xFF) << 16);value += ((buffer[1] & 0xFF) ...原创 2019-05-28 13:49:19 · 200 阅读 · 0 评论 -
Git教程和jni项目
链接到https://www.liaoxuefeng.com/wiki/896043488029600史上最浅显易懂的Git教程!为什么要编写这个教程?因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的某几个命令,还有直接从Git手册粘贴帮助文档的,总之,初学...原创 2019-06-27 12:04:03 · 173 阅读 · 0 评论 -
c学习路线图
2.《The C programming_Language》推荐理由:C语言之父得作品权威性毋庸置疑。虽然书籍出版时间比较老,好像也没更新,不过仍不失为经典书籍,网上有这本书得英文电子版提供下载。3.《C 专家编程》推荐理由:本书可以帮助有一定经验的C程序员成为C编程方面的专家,最关键的是本书寓教于乐,让你充分享受编程的乐趣。4.《C缺陷与陷阱》推荐理由:书中所揭示的知识能帮助您绕过C语...原创 2019-07-04 10:10:03 · 954 阅读 · 0 评论 -
C++中的Inline函数
在大多数机器上,函数调用does a lot of work:在调用函数前保存寄存器,调用结束后利用寄存器恢复现场;需要复制函数参数;程序跳转到新的位置执行...内敛函数(inline function)则没有这个问题,简单的我们可以这样理解:Inline即“In line”为什么说“In line”呢,先看内敛函数的声明:// inline version: find t...原创 2019-08-09 14:29:37 · 329 阅读 · 0 评论 -
android ndk开发(第一篇)原生代码调用java代码
extern "C"JNIEXPORT void JNICALLJava_com_massky_shareptr_MainActivity_nativeInit(JNIEnv *env, jobject instance) { // Initialize mutex if (0 != pthread_mutex_init(&mutex, NULL)) { ...原创 2018-06-05 13:55:04 · 294 阅读 · 0 评论