c++
Charles_k
这个作者很懒,什么都没留下…
展开
-
qt采用C++/CLI 方式调用C#dll的封装方法(高阶应用)
C#写的dll是没有dllMain入口函数的,是一种中间语言,需要.Net运行时进行做本地化工作,因此如果要调用C#写的dll,需要依赖.Net运行时,然而Qt中还无法直接调用.Net运行时,而且Qt本身的moc机制与.Net运行时天然冲突,需要CLI这一层壳。有的也很简单,实际应用中,不仅需要导出类,还需要传递函数指针作为回调。简单讲讲需求:cpp作为主程序,c#作为第三方程序被调用,并且需要在c#代码里调用主程序里的方法。以下为C#DLL里的主要代码,主要做回调和导出。在C++主程序里作为调用方。原创 2023-10-21 10:43:22 · 1458 阅读 · 1 评论 -
Critical error detected c0000374
Critical error detected c0000374原创 2023-03-20 18:07:08 · 641 阅读 · 0 评论 -
PTA1013 Battle Over Cities(dfs的四种做法效率对比)
1.DFS+二维数组标记#include <iostream>#include <unordered_map>#include <vector>#include <algorithm>using namespace std;vector < vector<bool>> book(1000, vector<bool>(1000, false));vector<vector<bool>>原创 2021-03-01 15:34:23 · 154 阅读 · 0 评论 -
1059. Prime Factors (25) 超简单方法
#include <iostream>#include <map>using namespace std;int main() { int n; cin >> n; printf("%d=", n); if (n==1) { printf("1\n"); } else { int tmp = n; map<int, int> ans;...原创 2021-02-25 20:39:11 · 262 阅读 · 0 评论 -
《cpp程序设计》谭浩强 学习笔记1
目录1.一个程序从编写到最后得到运行结果要经历以下一些步骤2.数值类型2.1 整数类型2.2 原码补码及反码2.3 移位2.3.1 左移2.3.2 右移2.4 进制表示2.5 表达式中各数据类型混合计算1.一个程序从编写到最后得到运行结果要经历以下一些步骤编译:为了使计算机能执行高级语言源程序,必须先用complier的软件,也称编译程序或...原创 2019-06-26 15:20:31 · 430 阅读 · 0 评论 -
FSM学习笔记
FSM(finite state machine)有限状态机目录1.1 FSM是一种数据结构1.2 为什么要用FSM?1.3 FSM定义1.3.1 FSM的描述性定义:1.3.2 FSM硬件定义1.3.3 FSM通俗定义1.4 FSM分类1.5好的状态机标准2.FSM实例2.1 两种FSM表示方法2.2 C代码伪代码表示2.2.1竖着写C代...原创 2019-06-28 14:50:43 · 3553 阅读 · 0 评论 -
动态载入DLL所需要的三个函数详解(LOADLIBRARY,GETPROCADDRESS,FREELIBRARY)
(仅供参考)动态载入DLL所需要的三个函数详解(LOADLIBRARY,GETPROCADDRESS,FREELIBRARY)动态载入 DLL动态载入方式是指在编译之前并不知道将会调用哪些 DLL 函数, 完全是在运行过程中根据需要决定应调用哪些函数。方法是:用 LoadLibrary 函数加载动态链接库到内存,用 GetProcAddress函数动态获得 DLL 函数的入...转载 2019-08-09 09:51:41 · 1732 阅读 · 0 评论 -
C++多线程同步之事件(Event)
https://blog.csdn.net/oLanSeFengYe1/article/details/53291074一、事件(Event)原理解析1、线程同步Event,主要用于线程间的等待通知。2、内核对象中,事件内核对象是个最基本的对象。3、事件包含一个使用计数(与所有内核对象一样),一个用于指明该事件是个自动重置的事件还是人工重置的事件的布尔值,另一个用于指明该事件处于已通...转载 2019-08-09 11:36:03 · 1194 阅读 · 0 评论 -
vs mfc常见问题
1.Error 1 error C2143: syntax error : missing ';' before '<' Error 2 error C2238: unexpected token(s) preceding ';' 报错多次解决方案:智能指针前加命名空间 改为std::unique_ptr...原创 2019-09-11 15:15:24 · 358 阅读 · 0 评论 -
C++:代码规范
一。文件和目录在C/C++编程中,应该使用如下的文件名后缀:C++的头文件:.hpp(系统自动生成时允许.h,比如VC)C++的Inline函数实现头文件:_I.hppC++的源文件:.cppC的头文件:.hC的源文件:.cPerl编程中:Perl程序的源文件:.plC#编程中:C#程序的源文件:.csShell编程中:Shell脚本的源文件:.sh使用统一而且通用的文件...原创 2019-09-28 10:42:13 · 625 阅读 · 0 评论 -
c/c++: 面试总结+查漏补缺(二)
1.c和c++中的struct有什么不同?答: c和c++中struct的主要区别是c中的struct不可以含有成员函数,而c++中的struct可以。c++中struct和class的主要区别在于默认的存取权限不同,struct默认为public,而class默认为private;其次,c++中的类具有成员保护功能,并且具有继承,多态这类oo特点,而struct没有.2.const的理解...原创 2019-04-24 18:48:39 · 256 阅读 · 0 评论 -
【leetcode】513. 找树左下角的值(完整测试代码)
给定一个二叉树,在树的最后一行找到最左边的值。示例 1:输入: 2 / \ 1 3输出:1示例 2:输入: 1 / \ 2 3 / / \ 4 5 6 / 7输出:7思路:pair <层数,节点值> 先序遍历树...原创 2019-04-26 15:59:29 · 376 阅读 · 0 评论 -
c++:DFS与BFS详解
DFS(深度优先搜索):从某个状态开始,不断转移状态到无法转移为止,然后退回到前一步,继续转移到其他状态,不断重复,直至找到最终的解。 总是从最开始的状态出发,遍历所有的可到达状态。隐式利用栈进行计算eg:有一个N*M的田,雨后积水,八连通(下图相对w的*部分)的积水被认为连在一起,请给出园里有多少水洼? *** *w* ***原创 2017-11-17 19:31:48 · 11198 阅读 · 1 评论 -
LintCode-【容易】9.Fizz Buzz问题
给你一个整数n. 从 1 到 n 按照下面的规则打印每个数:如果这个数被3整除,打印fizz.如果这个数被5整除,打印buzz.如果这个数能同时被3和5整除,打印fizz buzz.您在真实的面试中是否遇到过这个题? Yes样例比如 n = 15, 返回一个字符串数组:[ "1", "2", "fizz", "4",原创 2017-11-12 15:57:06 · 442 阅读 · 0 评论 -
c++ :函数模板,指针型函数,引用
函数模板是用来创建通用功能函数,以支持多种不同参数。定义形式:template返回类型 函数名(形参表){函数体; } 注: a,类型名可以有多个;可以是抽象类型,也可以是普通类型,个数取决于返回类型和形参表类型个数b,class是类型关键字,也可以用typename作为关键字实例:template T1 add(原创 2017-11-16 00:00:44 · 1451 阅读 · 0 评论 -
(考研系列)常见排序算法一览
0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。 0.2 算法复杂度0.3 相关概念...转载 2018-07-22 22:03:42 · 2644 阅读 · 0 评论 -
C/C++:0 NULL nullptr nullptr_t联系与区别
1. 从本质上1)0是int型的字面值常量2) NULL 是预处理变量,定义在 cstdlib 中,其值是03) nullptr 是 nullptr_t 类型的字面值。2. cstdlib 中 NULL 的定义#ifdef __cplusplus #define NULL 0 #else #define NULL ((void...原创 2019-04-11 10:49:00 · 2781 阅读 · 1 评论 -
c/c++: 面试总结+查漏补缺(一)
目录1.C++ 中的类型限定符2.存储类:static,extern,mutable,thread_localstatic 存储类实例extern 存储类实例实例mutable 存储类thread_local 存储类auto 默认局部变量注意点:decltype3.C++引用C++ 引用 vs 指针4.c++程序内存5.局部变量...原创 2019-04-23 17:08:42 · 455 阅读 · 0 评论 -
【leetcode145】二叉树的后序遍历
给定一个二叉树,返回它的后序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1]进阶:递归算法很简单,你可以通过迭代算法完成吗?1.递归/** * Definition for a binary tree node. * struct TreeNode { * int va...原创 2019-04-26 12:25:17 · 245 阅读 · 0 评论 -
109. 有序链表转换二叉搜索树
给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 ...原创 2019-04-26 15:07:56 · 342 阅读 · 0 评论 -
LintCode 211. 字符串置换
描述: 给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换。置换的意思是,通过改变顺序可以使得两个字符串相等。样例: “abc” 为 “cba” 的置换。“aabc” 不是 “abcc” 的置换。思路:写一个函数将字符串转换成字符数组,调用c函数库里的sort函数快排,再转化成字符串比较,简单题,没必要多讲class原创 2017-11-12 14:47:32 · 527 阅读 · 0 评论