摘要:
SQLite 自定义函数,聚合,排序规则 1.使用自定义函数, 聚合以及排序规则的基本方法是使用回调函数.这些注册的函数的生命周期只存在于应用程序中, 并不存储在数据库文件中, 因此需要在每个连接建立时注册才可以在 SQL 中进行使用. 2.排序规则SQLite 对结果集中的字段进行排序时, SQL 阅读全文
摘要:
个人总结: vector支持随机访问,但无通用性,当采用list后,就不能再使用了,不可取. 迭代器与范围for循环所用时间无明显差异, qt提供的foreach显然是最差的方法, std算法for_each也还可以接受, 但范围for循环好看得多, 更好用啊! 在循环中调用调用cend方法,会频繁 阅读全文
摘要:
一个利用内存缓存和磁盘缓存图片的例子 阅读全文
摘要:
Messenger 使用 Messenger 可以在进程间传递数据, 实现一对多的处理. 其内部实现, 也是基于 aidl 文件, 这个aidl位于: frameworks/base/core/java/android/os/IMessenger.aidl. 服务端与客户端通信, 主要是在传输的消息 阅读全文
摘要:
C++时间 头文件 chrono, 命名空间 std. 现在时间 std::chrono::system_clock::now() 返回系统时钟的当前时间 时钟 std::chrono::system_clock 代表系统当前的时间, 是不稳定的时钟, 并且提供了函数可将时间点转化为 time_t 阅读全文
摘要:
C++并发编程 等待与唤醒 条件变量 条件变量, 包括(std::condition_variable 和 std::condition_variable_any) 定义在 condition_variable 头文件中, 它们都需要与互斥量(作为同步工具)一起才能工作. std::conditio 阅读全文
摘要:
C++并发编程 异步任务 异步任务 std::async (1) std::async 会返回一个 std::future 对象, 这个对象持有最终计算出来的结果. 当需要这个值时, 只需要调用对象的get()成员函数. 并且直到“期望”状态为就绪的情况下, 线程才会阻塞; 之后,返回计算结果. ( 阅读全文
摘要:
C++并发编程 异步任务(async) 线程基本的互斥和同步工具类, 主要包括: std::mutex 类 std::recursive_mutex 类 std::timed_mutex 类 std::recursive_timed_mutex 类 std::lock_guard 类型模板 std: 阅读全文
摘要:
std::thread C++11在标准库中为多线程提供组件, 使用线程需要包含头文件 thread, 其命名空间为 std. 启动新线程 每个进程至少有一个线程: 执行main()函数的线程, 其余线程有其各自的入口函数(线程函数)。 当线程执行完线程函数后, 线程也会退出. 如果不传入线程函数( 阅读全文
摘要:
C++智能指针 智能指针与异常 如果使用智能指针, 如果程序块过早的结束, 智能指针能保证在内存不再需要时进行释放. (特别是在有多个出口的函数中 -- 虽然应尽量避免设计这样的函数, 但凡事总有例外 -- 此时使用智能指针来自动释放内存是非常方便的) 对于异常处理来说, 考虑下面两个函数, 当程序 阅读全文