C++
JeemyJohn
这个作者很懒,什么都没留下…
展开
-
IntelliJ IDEA平台下JNI编程全解
文章目录1、前言2、搭建gcc编译环境3、编写Java代码1、前言众所周知,Java语言是基于虚拟机的解释性语言(Java代码经过编译器编译之后并不是能够直接在机器上执行的二进制代码,而是JVM虚拟机能够识别的字节码,依靠Java虚拟机进行解释执行)。而C/C++是编译型语言(编译完成后是能够直接在机器上运行的二进制指令)。虽然,随着Java虚拟机技术的改善和优化,Java性能相对于刚出来那会已经有了极大地提升,但是C/C++语言的性能还是会比Java要高,这是不争的事实。2、搭建gcc编译环境3、原创 2020-06-06 16:37:35 · 2864 阅读 · 0 评论 -
算法面试题整理
1. 给出一个正整数,将该整数分解成质因数相乘的形式,例如n=56,它的质因数相乘的结果是:2*2*2*7。#include<iostream>using namespace std;int main() { int n; cin >> n; while (n > 1) { int i; for (i = 2; i < n; i++) {原创 2016-11-30 22:34:57 · 960 阅读 · 8 评论 -
VS2015+opencv2.4.13无本地依赖配置
1. 无本地依赖的解释及其必要性1.1 什么叫无本地依赖 在Windows系统中,对于常用的开源库,我们通常都喜欢将其编译成DLL。然后保存在某个目录下,最后将该目录添加到 Path 环境变量来达到在本机上对该DLL引用的一劳永逸的方法。这种方法对于学术人员做实验分析来说确实是一种比较方便的做法,但是如果是做一个可移植的系统的话,这种方式就很不靠谱!因为,这个程序只能在你的系统上运行,原创 2016-12-01 22:30:54 · 1207 阅读 · 9 评论 -
Linux静态库与动态库详解
1. Linux 下静态链接库编译与使用 首先编写如下代码: // main.c#include "test.h"int main(){ test(); return 0; }// test.h#include<iostream>using namespace std;void test();// test.c#include "test.h"void te原创 2016-11-21 20:47:46 · 719 阅读 · 9 评论 -
STL源码之Set和Map
在上一篇博客中,讲到了STL中关于红黑树的实现,理解起来比较复杂,正所谓前人种树,后人乘凉,RBTree把树都种好了,接下来就该set和map这类关联式容器来“乘凉”了。STL的set和map都是基于红黑树实现的,和stack和queue都是基于deque一样,它们仅仅是调用了RBTree提供的接口函数,然后进行外层封装即可。本篇博客理解起来比较轻松,set和map的源代码也不多,大家可以慢慢“品味原创 2016-12-14 22:38:50 · 671 阅读 · 7 评论 -
复制带有random指针的单链表
如图1所示,有一条单链表,其节点除了有next指针外,还有一个random指针。random指针可指向单链表中的任意节点,包括它自身。random指针一旦指定,便不再更改。请设计算法,复制此单链表,并给出时间复杂度。图1 带有random指针的单链表解法1. 时间复杂度为O(n*n)先按next指针,将链表复制一份。使用p1指向原链表的头节点,p2指向p1指向的节点的random节点,p3指向p1的原创 2016-12-15 10:57:30 · 1127 阅读 · 10 评论 -
Crypto++(一)Diffie-Hellman
Diffie-Hellman 是一个密钥协商算法,它允许双方建立一个安全的通信通道。最原始的 Diffie-Hellman 是一个异步协议,也即它是一个未经认证的协议,因此它容易受到中间人攻击的方式攻击。Crypto++通过DH类暴露未认证的DH算法。原始Diffie-Hellman的扩展包含加固交换协议以防止中间人攻击的认证。认证版本的DH协议通常被称为统一Diffie-Hellman。Cryp翻译 2016-12-19 19:03:57 · 4862 阅读 · 12 评论 -
STL源码之红黑树
1. 基本概念 红黑树是平衡二叉搜索树的一种,其通过特定的操作来保持二叉查找树的平衡。首先,我们来复习一下二叉查找树的知识,建议如果对二叉查找树不理解的先去搜一下相关博客来了解一下。二叉搜索树是指一个空树或者具有以下性质的二叉树:任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;任意节点的左、右子树也原创 2016-12-16 15:30:58 · 1014 阅读 · 10 评论 -
C/C++语言宏定义使用详解
1. #ifndef 防止头文件重定义在一个大的软件工程里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接成 一个可执行文件时,就会出现大量“重定义”的错误。在头文件中实用#ifndef #define #endif能避免头文件的重定义。方法:例如要编写头文件test.h 在头文件开头写上两行:#ifndef TEST_H#define TEST_H //一般是文件名的大写头文件结尾原创 2016-11-28 17:03:41 · 1310 阅读 · 4 评论