C++
smalbig
这个作者很懒,什么都没留下…
展开
-
图像细化操作的并行优化
Windows 下使用了自带的并行库ppl,跨平台的话使用 tbb 也是可以无痛切换的。参考了https://blog.csdn.net/qianchenglenger/article/details/19332011 的文章,进行了边界和并行优化。原创 2023-07-27 14:47:23 · 211 阅读 · 0 评论 -
很方便的计时类 GoodClock 基于 std::chrono
在一段需要计时的代码前后加上计时代码,总是让人感觉多余、不适,如果能把要执行的代码放(编译)到一个函数里就好了,这样在感官上就很清爽、整齐。所以设计了一个函数,用类浅浅的封装了一下,封装它主要是为了给输出上锁,这样在多线程环境下也能正确输出。测试时发现 Sleep(2) 实测延时是 3ms 左右,可是我清除的记得以前在 windows 上 Sleep(n) 最小也是 10ms 有没有了解的大佬烦请告知一下。计时类的使用 test.cpp,测试了全局函数、成员函数、局部函数。原创 2023-05-17 13:32:55 · 166 阅读 · 0 评论 -
std::condition_variable::wait_for 的几个细节
std::condition_variable::wait_for 的两种重载用法(以下简称上篇)直观上介绍了 std::condition_variable::wait_for 的使用效果,这篇对没解释清楚的注释、执行结果进行解释。原创 2023-04-17 10:04:54 · 3337 阅读 · 0 评论 -
std::shared_ptr 的一个简单实现
提供了std::shared_ptr 的一个简单实现,和push-pop测试。可以用来学习智能指针的实现方法,后面还要更新。工程中还是使用 std::shared_ptr 和 weak_ptr。原创 2023-04-11 18:24:52 · 123 阅读 · 0 评论 -
JSON for Modern C++(原 nlohmann json)再封装之toJson
JSON for Modern C++可以说是非常摩登的一个C++ json 库了,支持容器化操作(push_back等操作),支持从 stl 容器(vector ,map)创建 json。具体用法就不赘述了,打开文章开头的链接自行查看即可,非常简单。这篇文章主要是通过自定义树形结构,对这个库进行进一步封装,以期待实现动态的 json 序列化和反序列化。树形结构擅于组织具有节点关系的动态数据,也适合递归,和 json 的结构不能说很像,只能说非常适合json,所以用它来做与 json 交互的数据结.原创 2022-04-16 18:08:47 · 1407 阅读 · 0 评论 -
reinterpret_cast的一个用法
reinterpret_cast可以用来跨模块分享一个指针(不安全,后果自负)。int main() { char* p = new char[200]; int64_t i64 = reinterpret_cast<int64_t>(p); char buffer[25]; _ui64toa_s(i64,buffer,25,10); string str(buffer);}把 str 和它的长度包装成 json ,传给其他模块即可;其他模块解析时先原创 2022-02-25 18:28:53 · 978 阅读 · 0 评论 -
Qt 重叠同级 Widget 定制化穿透点击
Qt 重叠同级 Widget 定制化穿透点击原创 2021-12-25 13:50:02 · 1548 阅读 · 0 评论 -
动态树型对象的拷贝构造
进行UI开发的过程中,考虑到用户可能会动态的向一个对象添加属性,或其他对象,可以通过树形结构来组织这个对象,所有可进行添加的对象都应该继承自一个父类。由于树形结构具有无限拓展的特性,拷贝树形对象变得麻烦,所以可以通过递归树来拷贝一个树形对象。具体实现demo见代码:#include <iostream>#include <vector>using namespace std;//树形基类class Node {public: Node() {} /原创 2021-10-31 17:58:14 · 223 阅读 · 0 评论 -
拷贝父类对象,父类对象调用子类实现的方法
有时会有这样的需求,需要拷贝一个对象时,不知道对象的确切类型,只知道他的父类类型。如果只希望获得未知对象对父类方法的实现,可以在构造对象的时候把对象的指针传给父类对象。应用在一些动态、泛型的场合,比如动态加载了一个DLL,里面子类的类型是不知道的,但是知道他实现了父类的方法,就可以调用它。代码:#include <iostream>class BaseFoo {public: BaseFoo* childfoo = nullptr; void setChil原创 2021-10-22 18:35:57 · 627 阅读 · 0 评论 -
C++ Qt 构建树形结构 树形结构生成XML
树形数据结构是一类重要的非线性数据结构。树形数据结构可以表示数据表素之间一对多的关系。其中以树与二叉树最为常用,直观看来,树是以分支关系定义的层次结构。树形数据结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树形数据结构来形象表示。树形结构具有无限拓展的特性,因此非常适合组织节点深度不定的数据,其基本实现方式是一个对象通过保存父对象和子对象的指针,来实现 A-B-C。实现步骤:1.定义基类class BaseNode{private: //父节点的指针..原创 2021-10-15 17:13:37 · 2121 阅读 · 0 评论