关闭
当前搜索:

[C/C++]_[初级]_[正则表达式的反向引用]

场景 1.正则表达式查询特定规则的字符串十分高效率, 有一些规则的字符串, 如果不用正则, 单是枚举+逻辑记录匹配的代码量就非常大. 2.比如查找一个小写字符串里连续相同的字母, 之后把它替换为 Xn(大写字母和重复字母个数)的方式进行加密. 正好正则表达式有专门的反向引用来解决查找重复字符的问题. 例子 void TestBackreference() { std::st...
阅读(43) 评论(0)

[C/C++]_[初级]_[关于数组的初始化问题]

场景 1.我们知道栈上创建的POD数组可以使用 {0}初始化, > 第3.9部分, 数组. 如果指定了维数 那么初始化列表提供的元素的个数不能超过这个值,否则,将导致编译错误. 如果指定的维数大于给出的元素的个数 那么没有被显式初始化的元素将被置为 0. 2.对于C++ new 出来的free store数组new int[5] 如何进行初始化是一个头疼的问题. 因为大部分书里也没提到...
阅读(48) 评论(0)

[Windows]_[系统内部版本号对照表]

转载地址: https://msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspxOperating System VersionThe Version API Helper functions are used to determine the version of the operating system ...
阅读(265) 评论(0)

[Git和SVN比较]_[初级]_[Git速查手册]

场景1.使用SVN的都知道, SVN是集中化的版本控制系统. 本地只存储最新的版本快照, 不能查看整个库的历史记录; 修改代码过后, 如果需要提交代码到中心仓库,是需要联网的; 如果别人更快的提交, 那么必须先update之后解决冲突才可以提交, 相当麻烦.说明下边比较Svn(集中化版本控制) 和 Git(分布式版本控制)的优缺点:Svn特性1.只存储某个个版本的快照.2.是以数值为版本好.优点1....
阅读(1615) 评论(0)

[C/C++标准库]_[初级]_[使用正则表达式过滤Windows文件名中的非法字符]

场景1.Windows和macOS的文件名有自己的命名规则, 特别是Windows的文件名限制了不允许使用的特殊字符. 在使用这些文件名新建文件时会创建失败.说明1.在前面的文章里在Windows上我使用了比较笨的方法: 过滤Windows.MacOSX文件名中的非法字符. 最近发现其实使用正则效率更高.例子 #include #include // "[/|?%...
阅读(1039) 评论(0)

[libxml2]_[C/C++]_[高效读取XML大文件]

场景1.一个比较大的XML文件, 要读进内存里,并转换为相应的对象(比如一个C++对象), 通常都是把整个XML文件读入转换为DOM对象, 之后对DOM对象进行枚举分析生成C++对象.2.如果这个庞大的XML文件有错误, 那么读取也会失败,即生成DOM失败,这样已经读取过的DOM对象就会被浪费, 造成无法分析XML对象.说明1.在生成DOM对象后, 再转换为C++对象,这样就会有两份重复的内存数据,...
阅读(482) 评论(0)

[libxml2]_[C/C++]_[高效输出XML大文件]

场景1.libxml2基本上算是xml的C/C++标准读写库. 在linux,macOS里是默认支持. 可惜在Windows上有自己专有的msxml, 所以并不支持libxml2, 恶心的是msxml还不是标配, 还要必须另外下载安装, 所以作为Windows上优先选择的XML库, 就是可跨平台的libxml2.2.xml的sax读取库expat也是比较优秀的选择, 可惜不支持写.3.一般的写库方式...
阅读(713) 评论(0)

[ATL/WTL]_[初级]_[Win32实现Cocoa的dispatch_async到主线程的异步消息处理]

场景1.写界面程序时, 大多是底层部分需要至少一个工作线程来处理逻辑, 避免使用主线程导致界面卡顿, 当底层线程处理数据完毕后, 需要转发到主线程绘制数据. 因为非绘图线程绘制数据会导致不可预料的问题, 一般情况下会导致程序莫名其妙崩溃,多线程同时调用绘制函数会导致资源冲突,而且冲突可能会在特定情况下才发生,不易察觉.2.工作线程发送数据到主线程,Win32消息处理一般有几种方式 PostMessa...
阅读(1724) 评论(0)

[Object-C]_[C/C++]_[日期时间操作对比]

场景 macOS 处理时间函数有自己的 NSDate, C 的库函数 time.h相比它就有点弱了, 不过麻雀虽小, 五脏俱全. 麻烦的是在处理一些 UTC,GMT之类的转换时需要自己动手. 说明 Object-C的 NSDate结合了NSDateFormatter来设置日期属性, 比如格式化,本地,时区等等. 如果 C实现需要把本地转换为 UTC, 那么还需要对 time_t进行处理, 调用 lo...
阅读(1903) 评论(0)

[Object-C]_[C/C++]_[集合操作对比]

场景 比如编辑联系人, 联系人需要加入某个分组, 这时候界面操作就需要复选框来选择加入某个分组, 但是有可能这个联系人之前已经加入了某个分组, 现在只是需要加入新的分组即可, 但是界面操作往往用户可能并不知道这个联系人已经加入过哪些分组, 所以他会把想加入的分组都勾选一边, 这样我们程序在提交时就需要过滤出未加入过的分组,也就是”相对补集”; 再比如, 修改用户资料时, 我们需要勾选多个爱好兴趣,...
阅读(1611) 评论(0)

[Object-C]_[初级]_[object类的对象和属性@property]

场景 object-c 的 @property 是我们常用的声明, 对属性类型描述涉及到 readonly,readwrite,assign,copy,retain,atomic,nonatomic,strong,weak. 如果对属性类型有理解的话, 对属性设置会有更加准确. 常遇到的 retain,copy 到底有什么区别? 实例变量和 @property声明的 是否是同一个变量? 说明 obj...
阅读(654) 评论(0)

[C/C++标准库]_[初级]_[移除反转枚举reverse_iterator]

场景 在一些业务逻辑中, 我们需要删除某个链表中的元素A, 并重新计算这个元素A后边的所有元素相对与前一个元素的值. 条件1是这个元素A必须删除, 因为这个元素A已经无效,有他存在必然影响了对整个链表的个数统计; 条件2是这个元素A后的所有元素本来是根据元素A的值进行相对计算的, 如今元素A被删除, 那么元素A后的元素值必要要重新计算. 说明 std::vector 经常被用来存储元素, 无奈我们发...
阅读(210) 评论(0)

[并发并行]_[线程池]_[Programming With POSIX Threads的线程池实现分析1]

场景1.C++标准库没有提供线程池操作, 连Win32都没有集成线程池, 相比之下macOS完善多了, 至少有operations. 多线程在执行多任务时有很大优势, 比如同时管理多个设备, 多个socket连接等.2.第3方库也有很多, 最常见的是boost的线程, 可是boost编译的成本也很高, 打包也很大, 一般不考虑.说明1.Programming With POSIX Threads 的...
阅读(887) 评论(0)

[Windows]_[网络]_[浏览器无法访问网站DNS_PROBE_POSSIBLE]

场景1.IE,Firefox浏览器访问不了网站, 谷歌浏览器可以, 返回错误码 DNS_PROBE_POSSIBLE.2.ping www.qq.com可以 ping通, ping局域网也可以ping通, 就是不能上qq.rtx.3.DNS已经设置, 通过命令ipconfig /all可以看到设置的DNS, DNS也是对的, 同事也是这么设置的. 说明1.通过浏览器的错误码可知道, 应该就是 DNS...
阅读(5232) 评论(0)

[C/C++]_[macOS-Windows]_[原子操作2]

场景1.原子操作一般用在多线程执行的逻辑里, 比如统计业务个数 ++count, 或者下载文件个数,下载大小, 设置对象状态等. 如果不用原子操作, 那么可能在并发情况下, 原本的事务指令A会被事务指令2抢占而导致出现数据被覆盖.说明1.macOS下提供了 来处理 C 方式的原子操作. 如果是object-c方式的原子属性可以使用关键字 atomic.2.C...
阅读(630) 评论(0)

[MD5]_[Windows-macOS]_[计算文件的MD5]

场景1.MD5是比较简单的文件ID, 大部分情况在安全系数要求不高时可以用它来校验文件唯一性. 比如下载文件后进行 md5计算看文件是否完整.2.对字符串进行md5也是一样的.# 例子1.下边是使用系统自带的库或API来完成计算文件的md5, 第3方库 libgcrypt也可以做到, 就是编译比较麻烦.Windows #include std::string AssUtil:...
阅读(955) 评论(0)

[Object-c]_[初级]_[数组NSArray过滤NSPredicate的简单介绍]

场景1.object-c的数组 NSArray 或 C++的 std::vector都支持查询特定条件的对象. NSArray内置了NSPredicate方式的查询, 可以说更加方便.说明1.object-c的 NSPredicate 缺点就是如果对要处理的属性值进行复杂换算再比较是做不到, 比如对属性 name 进行md5计算再比较, 不过这个时候一般都是用for进行迭代. NSPredicate...
阅读(873) 评论(0)

[文件时间]_[Windows-macOS]_[修改文件的创建时间-修改时间]

场景1.修改文件时间一般用在下载远程文件到本地时, 修改其创建时间为远程文件的原时间, 这样对文件排序查找时也方便归类. 这类文件有很多, 视频, 音频, 图片.说明1.Windows 和 macOS都有这种API, Windows以简单的C Win32 api 方式; macOS则使用NSFileManager来修改.例子Windows #include //2014-09-...
阅读(694) 评论(0)

Desktop Applications (Visual C++)- 微软的如何学好桌面本地应用程序给出的指南

转载链接: https://docs.microsoft.com/zh-cn/cpp/windows/desktop-applications-visual-cppDesktop Applications (Visual C++)2016-11-4 3 分钟阅读时长 作者    A desktop application in C++ is a native application that ca...
阅读(425) 评论(0)

Visual Studio 版本中的 Visual C++ 工具和模板

Visual Studio 版本中的 Visual C++ 工具和模板Visual Studio 2015其他版本 若要了解有关 Visual Studio 2017 RC 的最新文档,请参阅 Visual Studio 2017 RC 文档。下表显示 Visual Studio 中可用的 Visual C++ 功能。 单元格中的 X 指示功能可用;空单元格指示功能不可用。 括号中的说明指示功能可...
阅读(427) 评论(0)
297条 共15页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:917648次
    • 积分:11435
    • 等级:
    • 排名:第1577名
    • 原创:277篇
    • 转载:18篇
    • 译文:2篇
    • 评论:156条
    任务
    1. 阅读 《加密与解密》并总结 (2017年).
    QQ: 632994155
    搜索
    博客专栏
    最新评论