- 博客(213)
- 资源 (76)
- 收藏
- 关注
转载 c++ stl sort算法浅析
参考:C++一道深坑面试题:STL里sort算法用的是什么排序算法?_yinn-CSDN博客sort算法使用了快速排序,插入排序以及堆排序,至于具体使用到哪种或者哪几种排序,还要根据具体的实际:数据量大和数据量小都适合用快速排序吗? 快速排序的时间复杂度不是稳定的nlogn,最坏情况会变成n^2,怎么解决复杂度恶化问题? 快速排序递归实现时,怎么解决递归层次过深的问题? 递归过深会引发什么问题? 怎么控制递归深度?如果达到递归深度了还没排完序怎么办?哪些STL容器需要用到sort算法 :
2021-11-05 15:23:17
406
原创 c++ ---深度探索C++对象模型读书笔记3
3.Data 语意学class X {}; // sizeof 得到1class Y :public virtual X {}; // sizeof 得到8class Z: public virtual X {}; // sizeof 得到8class A:public Y, public Z {}; //sizeof 得到12X中没有任何成员,但是它也不为空,它是有一个隐晦的1byte,那是被编译器安插进去的一个char,这使得这个class 生成的...
2020-10-10 08:36:46
319
原创 c++ ---深度探索C++对象模型读书笔记4
Function 语言学Nonstatic Member Function 非静态成员函数至少必须和一般的nonmember function有相同的效率。编译器将“member函数实体”转换为对等的“nonmember函数实体”。成员函数会在内部被转化为非成员函数形式:改写函数的原型,以传入一个额外的参数this指针,到member function 中,用以提供一个存取管道,是class object得以调用该函数。 将每一个“对nonstatic data member的...
2020-10-10 08:35:14
304
原创 c++ ---深度探索C++对象模型读书笔记1-2
简单的对象模型:一个class object 的大小等于指针大小,乘以类成员的数量,原因是因为类对象中只保存类成员的slot。成员本身并不存在对象中,只有指向成员的指针存在对象中,是因为成员的类型不同,申请的内存不同的存储空间。 表格驱动对象模型:把所有与memebers相关的信息抽出来,放在一个data member table 和一个member function table中,class object 本身则内含指向这两个表格的指针。 C++ 对象模型:非静态成员被配置在每一个class obje
2020-10-09 09:27:04
332
原创 c++ 内存模型和程序内存结构
堆:由程序员分配释放。栈:局部变量,局部常量,返回值,参数。静态存储区:全局静态变量,局部静态变量,全局常量指针,虚函数表。常量存储区:全局常量,函数指针,常量数组。代码区;1.栈区(stack):又编译器自动分配释放,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构的栈。2.堆区(heap):一般是由程序员分配释放,若程序员不释放的话,程序结束时可能由OS回收,值得注意的是他与数据结构的堆是两回事,分配方式倒是类似于数据结构的链表。3.未初始化数据区(BSS):.
2020-10-09 09:17:04
346
原创 git管理--git命令
一、本地操作:1.其它git init:初始化本地库git status:查看工作区、暂存区的状态git add <file name>:将工作区的“新建/修改”添加到暂存区git rm --cached <file name>:移除暂存区的修改git commit <file name>:将暂存区的内容提交到本地库 tip:需要再编辑提交日志,比较麻烦,建议用下面带参数的提交方法git commit -m "提交日志" <file
2020-10-09 09:11:59
129
原创 c++STL之 Traits技术
Traits技术可以用来获得一个 类型 的相关信息的。整体思想就是,在被萃取类中定义内嵌类型,在定义一个单独的提取类模板,针对被萃取类型进行模板偏特化。首先假如有以下一个泛型的迭代器类,其中类型参数 T 为迭代器所指向的类型:template <typename T>class myIterator{...};当我们使用myIterator时,怎样才能获知它所指向的元素的类型呢?我们可以为这个类加入一个内嵌类型,像这样:template <typename T>cl.
2020-10-09 09:10:22
289
原创 c++ 深入探究之this指针的特性
1、this指针的类型 类类型* const2、this指针并不是对象本身的一部分,不影响sizeof的结果。3、this的作用域在类成员函数的内部。4、this指针是类成员函数的第一个默认隐含参数,编译器自动维护传递,类编写者不能显式传递。5、只有在类的非静态成员函数中才可以使用this指针,其它任何函数都不可以。6、如果参数个数确定,this指针通过寄存器ecx传递给被调用者,如果参数个数不确定,this指针在所有参数被压栈后压入堆栈...
2020-10-09 09:08:59
294
原创 深入C++ 之逐位拷贝(bitwise copy)
深入C++ 之逐位拷贝(bitwise copy)提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言 最近有重新翻阅的侯捷老师的《深度探索C++对象模型》一书,依然别有新意源源涌来,不禁感叹经典书籍的魅力,...
2020-09-30 12:17:07
2090
1
转载 C++成员函数在内存中的存储方式
最近看到一篇文章写得非常透彻,不由让我有种非转载不可的冲动,感谢大神的不吝分享!转载地址:https://blog.csdn.net/fuzhongmin05/article/details/59112081...
2020-05-06 16:19:21
296
转载 关于i++和++i以及左值,右值
i++就是先用了i的值(用于赋值之类的操作),再i自加1. 而++i就是把i的值先自加1再用作其他操作.不过今天无意之间看到了帖子上有人说 i++=5; //不合法 ++i=5; //合法 一. 这个问题牵涉到得首先是左值(L...
2020-03-18 10:51:20
2728
1
转载 C++弱引用智能指针weak_ptr的用处
转自:原文链接:https://blog.csdn.net/leeds1993/article/details/54563918weak_ptr也是一个引用计数型智能指针,但是它不增加对象的引用计数,即弱引用。与之相对,shared_ptr是强引用,只要有一个指向对象的shared_ptr存在,该对象就不会析构,直到指向对象的最后一个shared_ptr析构或reset()时才会被销毁。利...
2020-03-18 10:47:24
329
原创 c++11并行编程
join()的作用是等待线程本对象销毁。通过#include <cstdatomic>头文件中来使用对应于内置类型的原子类型定义,如atomic_llong.也可以使用std::atomic<T> t;atomic-integral-type和integral-type标识的是上表的原子类型,class-type则指自定义类型。读(load)写(stor...
2019-11-01 14:24:59
2756
原创 c++11 指针空值、默认函数控制、
指针空值常量nullptr,是一个编译时期的常量。不要对nullptr做取地址操作。指针空值类型 nullptr_t.所有定义为nullptr_t类型的数据都是等价的,行为也是完全一致。nullptr_t类型数据可以隐式转换成任意一个指针类型。nullptr_t类型不能转换为非指针类型,即使使用reinterpret_cast<nullptr_t>()的方式也是不可以...
2019-11-01 14:20:26
768
原创 C 11 decltype类型推导
RTTI(运行时类型识别):为每一个类型产生一个type_info类型数据,程序员可以在程序中使用typeid随时查询一个变量的类型,typeid返回的是type_info,在type_info中name()函数返回类型名字。c++11中又增加了hash_code函数返回该类型唯一的哈希值,用来对变量的类型随时进行比较。decltype的类型推导是以一个普通的表达式为参数,返回该表达式的类...
2019-10-22 17:38:47
442
原创 C++11 Move semantics (移动语义)
C++11加入了右值引用(value reference)的概念(用&&标识),用来区分对左值和右值的引用。左值就是一个有名字的对象,而右值则是一个无名对象(临时对象)。move语义允许修改右值(以前右值被看作是不可修改的,等同于const T&类型)。c++11中所有的值必须是左值、右值、将亡值之一。即:在使用右值引用的时候,因为右值是一个无名的临时对象,对于对象的移...
2019-10-22 17:36:16
1138
原创 C++ 11 Range-based for loops
Range-based for loops (基于范围的for循环) c++中for_each(first, end,func)主要是基于迭代器的原理,迭代器内含了自增操作。问题是必须告诉for循环体的界限范围。为了在遍历容器时支持”foreach”用法,C++11扩展了for语句的语法。用这个新的写法,可以遍历C类型的数组、初始化列表以及任何重载了非成员的begin()...
2019-10-22 17:29:23
418
原创 redis命令小记
字符串类型:set key valueget keygetset key 要换的值incr keydecr keyincrby key 要加的值decrby key 要减的值append key 要追加的值(key不存在则创建)list类型:lpush key value1 value2 在头部添加rpush key value1 value2 在尾部添加lp...
2019-08-19 15:45:01
232
原创 java基础探秘---Java内部类详解[内部、静态内部、匿名内部、局部内部]
一.内部类基础 在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种内部类的用法。 1.成员内部类 成员内部类是最普通的内部类,它的定义为位于另一个类的内部,形如下面的形式: 1 2 3 4 5 ...
2019-08-15 16:26:21
159
原创 StarUML安装破解及使用简明教程
StarUML(简称SU),是一种创建UML类图,生成类图和其他类型的统一建模语言(UML)图表的工具。StarUML是一个开源项目之一发展快、灵活、可扩展性强(zj).StarUML官方下载地址: http://staruml.io/downloadStarUML3破解1.下载破解文件app.asarapp.asar下载地址:https://download.csdn.net...
2019-06-20 11:25:04
54010
9
原创 JFinal 极速开发框架--11.JFinal架构及扩展
11.1 概述 JFinal 采用微内核全方位扩展架构,全方位是指其扩展方式在空间上的表现形式。JFinal 由Handler、Interceptor、Controller、Render、Plugin 五大部分组成。本章将简单介绍此架构以 及基于此架构所做的一些较为常用的扩展。11.2 架构JFinal顶层架构图如下:...
2019-06-20 11:24:50
330
原创 JFinal 极速开发框架--10.FreeMarker基础
10.1 概述JFinal 默认使用FreeMarker 作为View,为了使eclipsejee 能正确识别html,所以默认使 用”.html”作为FreeMarker 视图文件的扩展名(原为”.ftl”)。如果需要使用 JSP 作为默认视图需要在configConstant(Constants me)方法中进行配置,见 如下配置:public void config...
2019-06-20 11:24:37
924
原创 JFinal 极速开发框架--9.国际化
9.1 概述JFinal 为国际化提供了极速化的支持,国际化模块仅三个类文件,使用方式要比 spring 这 类框架容易得多。9.2 I18n 与 ResI18n 对象可通过资源文件的 baseName 与 locale 参数获取到与之相对应的Res 对象,Res 对象提供了API 用来获取国际化数据。以下给出具体使用步骤: l创建 i18n_en_US.pr...
2019-06-20 11:24:19
429
原创 JFinal 极速开发框架--8.Validator
8.1 概述Validator 是 JFinal 校验组件,在Validator 类中提供了非常方便的校验方法,学习简单,使用方便。8.2 ValidatorValidator 自身实现了Interceptor 接口,所以它也是一个拦截器,配置方式与拦截器完全一 样。以下是 Validator 示例:public class LoginValidator extends...
2019-06-20 11:24:06
226
原创 JFinal 极速开发框架--7.RedisPlugin
7.1 概述 RedisPlugin是支持Redis的极速化插件。使用RedisPlugin可以极度方便的使用redis,该 插件不仅提供了丰富的API,而且还同时支持多redis服务端。Redis拥有超高的性能,丰富的 数据结构,天然支持数据持久化,是目前应用非常广泛的 nosql 数据库。对于 redis 的有效应 用可极大提升系统性能,节省硬件成本。...
2019-06-20 11:23:54
540
原创 JFinal 极速开发框架--6.EhCachePlugin
6.1 概述 EhCachePlugin 是 JFinal 集成的缓存插件,通过使用 EhCachePlugin 可以提高系统的并发 访问速度。6.2 EhCachePluginEhCachePlugin 是作为 JFinal 的 Plugin 而存在的,所以使用时需要在 JFinalConfig 中配置EhCachePlugin,以下是Plugin 配置示例代码:...
2019-06-20 11:23:40
214
原创 JFinal 极速开发框架--5.ActiveRecord
5.1 概述 ActiveRecord 是 JFinal 最核心的组成部分之一,通过 ActiveRecord 来操作数据库,将极大地减少代码量,极大地提升开发效率。5.2 ActiveRecordPlugin ActiveRecord 是作为 JFinal 的 Plugin 而存在的,所以使用时需要在 JFinalConfig 中配置ActiveRecordPlugin。...
2019-06-19 17:03:59
845
原创 JFinal 极速开发框架--4.AOP
4.1 概述 传统 AOP 实现需要引入大量繁杂而多余的概念,例如:Aspect、Advice、Joinpoint、Poincut、 Introduction、Weaving、Around 等等,并且需要引入IOC容器并配合大量的XML或者annotation 来进行组件装配。 传统 AOP 不但学习成本极高,开发效率极低,开发体验极差,而且还影响系统性能,尤其是在...
2019-06-19 17:02:42
759
原创 JFinal 极速开发框架--3.Controller
3.1 概述 Controller 是 JFinal 核心类之一,该类作为 MVC 模式中的控制器。基于 JFinal 的 Web 应 用的控制器需要继承该类。 Controller 是定义 Action 方法的地点,是组织 Action 的一种方式, 一个 Controller 可以包含多个 Action。Controller 是线程安全的。3.2 Actio...
2019-06-19 17:01:27
371
原创 JFinal 极速开发框架--2.JFinalConfig
2.1 概述基于 JFinal 的 web 项目需要创建一个继承自 JFinalConfig 类的子类,该类用于对整个 web项目进行配置。JFinalConfig 子类需要实现五个抽象方法,如下所示:public class DemoConfigextends JFinalConfig{ public void configConstant(Consta...
2019-06-19 16:59:52
250
原创 JFinal 极速开发框架--1.快速上手
JFinal 是基于Java语言的极速 WEB + ORM 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有 Java 语言所有优势的同时 再拥有 ruby、python、php 等动态语言的开发效率!JFinal特点 MVC 架构,设计精巧,使用简单 遵循 COC 原则,零配置,无 xml 独创 Db + Re...
2019-06-19 16:57:26
496
原创 Javaweb基础-- 12图解http笔记(基于http功能的追加协议)
1.SPDY2.WebSocket 使用浏览器进行全双工通信3.Web服务器管理文件的WebDAV
2019-06-19 16:47:52
187
原创 分布消息中间件--协议(AQMP、MQTT)
系统间的通信两种方式:1.rpc 基于远程过程调用,客户端不需要知道调用的具体细节,只需要直接调用实际存在与远程计算机上的某个对象即可,调用方式看起来和调用本地应用程序中的对象一致。协议:典型的RPC实现包括Dubbo/Thrift/DRPC等。网络通信实现透明跨语言2.消息队列,应用中的某个系统负责发送消息,由关系这个消息的响应系统负责接收消息,并在收到消息后进行各自系...
2019-06-19 16:45:54
2398
原创 RabbitMQ(概念,消息持久化,ACK机制)
目录 RabbitMQ 特点 RabbitMQ 概念 exchange交换机机制 什么是交换机 binding? Direct Exchange交换机 Topic Exchange交换机 Fanout Exchange交换机 Header Exchange交换机 Ra...
2019-06-19 16:37:32
1342
转载 集群部署环境下session共享的问题
转载自:http://blog.csdn.net/u010028869/article/details/50773174?ref=myread前言在搭建完集群环境后,不得不考虑的一个问题就是用户访问产生的session如何处理。如果不做任何处理的话,用户将出现频繁登录的现象,比如集群中存在A、B两台服务器,用户在第一次访问网站时,Nginx通过其负载均衡机制将用户请求转发到A服务器,这时A...
2019-06-13 14:48:11
888
原创 Javaweb基础-- 9图解http笔记(http cookie首部字段及其他首部字段)
1.Set-Cookie2.Cookie1.X-Frame-Options2.X-XSS-Protection3.DNT4.P3P
2019-06-12 15:30:06
190
原创 Javaweb基础-- 8图解http笔记(http实体首部字段)
1.Allow2.Content-Encoding3.Content-Language4.Content-Length5.Content-Loaction6.Content-MD57.Content-Range8.Content-Type9.Expires10.Last-Modified...
2019-06-12 15:28:54
180
Windows核心编程(第5版).pdf
2018-04-08
Python网络数据采集源码
2018-04-04
Python网络数据采集
2018-04-04
java并发编程实战(高清+源码)
2018-03-15
用MFC编写的数据包校验与常用校验算法(数据处理方法与串口通信用户层协议的编制)
2017-11-14
实现磁盘转储功能,使文件可以从虚拟磁盘转入内存中
2017-11-14
利用MFC技术结合MSComm控件,使用C++语言编写。程序功能包括手动设置串口参数,串行接收和发送数据,可以显示接收数据和保存接收数据等功能。
2017-11-14
WinCE 下实现远程控制,已经在WinCE平台上得到验证,此为客户端,可以在服务器PC机部失去操作功能的情况下,自由调用,存取数据。为PDA开发增加新思路
2017-11-14
VC下的MFC串口通信,采集下位机的DS18B20的温度,利用RS232串口传到计算机上,从而实现串口通信功能,该软件还有按键描述例,EDIT例等
2017-11-14
EZ-USB的.net源代码,实现上位机下位机通过USB通信
2017-11-14
restclient-ui-3.5-jar-with-dependencies
2017-11-10
JAVA核心技术卷1_基础知识
2017-11-10
JsonViewer
2017-11-10
淘宝技术这十年
2017-10-26
java设计模式实例
2017-10-20
SQLyog+Ultimate+9.6.2.0 带注册码
2017-10-20
Java加密与解密的艺术(清晰+书签+完整版)
2017-10-20
Eclipse常用设置-动力节点
2017-10-20
qt 路径列表程序实例【含库封装和调用实例】
2022-06-17
qt程序中嵌入第三方exe外壳实例程序
2022-06-17
PHP和MySQL WEB开发(第4版).pdf
2018-08-15
Flask 0.10.1.pdf
2018-08-15
JFinal技术架构浅析.doc
2018-08-15
C++程序设计语言.pdf
2018-04-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人