CPP

2019

Qt on Mac 摸索记录 - 其三

这个系列的摸索是在研究Qt Tutorial英文教程的基础上,克服在 macOS 上遇到的若干问题写下的记录。前面两篇我们还是在研究比较基础的模块,还没有涉及具体的 GUI 部分。从这篇开始我们来研究 GUI 开发。

Sep 19
CPP: STL map 的用法

抛开具体的编程语言场景,map 是一类非常基本的数据组织形式,其作用是将一个可 Hash 的值,映射到另一个值,而且一般来讲是一对一的(存在一对多的情况)。map 内部使用了红黑树,这棵树具有对数据自动排序的功能,使得对 map 的检索意义达到非常高的效率。基于键值的查找的复杂度是 Log(N)。

这里讲讲 C++标准库里面 map 的用法。

Jul 01
C++中将结构体放置在 std::vector 容器内的操作风险

有一组长度不固定的参数需要传输,且参数形式为结构体,那么一个比较简单的方法是将这些参数作为一个std::vector。例如

1
void f(std::vector<struct ExampleStruct> data);

由于 C++是采用值传递的方式,每次对std::vector进行元素的存取操作时,都会对涉及的结构体进行复制。如果结构体的数量比较多,或者结构体的体积比加大,那么这种方式对于计算和内存资源的浪费就比较大了。

Jun 28