数据结构
王者之路001
解决问题才是王道!
展开
-
联合主键和索引
今天,看到一个表,是联合主键的。以前,确实也看到过联合主键,还建立过联合主键。今天,正好看到了,就对联合主键和索引的知识进行重新整理下。主键和索引的关系为:1)主键一定是索引;2)索引是可以自建的,非主键;3)索引是一种数据结构,方便查找。联合主键的本质,就是一个联合起来造成的索引,用来作为表的主键。但联合主键要想用起来,必须采用如下原则:“大哥不能丢,兄弟不能断”。如下所示:create table test( name varchar(21), id n原创 2022-03-30 11:28:38 · 4902 阅读 · 3 评论 -
STL vector 和 QT QVector的用法差别实例
1.STL与数据结构 STL是C++里最常用的容器(但不是最好的容器)。很多人在计算机学习阶段,对计算机的数据结构课程是一塌糊涂的;这种一塌糊涂的感觉,甚至伴随着很多计算机软件工程师的长期的职业周期。当然,这其实并不能够完全怪计算机学习者,相当一部分原因是中国大学的计算机学习的教材把明明很简单的事物弄成非常复杂的事物。大学的数据结构教材,一般是张乃孝的《算法与数据结构》和严蔚敏《数...原创 2020-01-13 17:58:57 · 2396 阅读 · 0 评论 -
std::string 赋值为空指针
今天运行的程序崩溃了,发现原因为程序中用到了STL的std::string赋值为空指针,形式如下:void fun(const char *pTest){ std::string strTest = pTest;}就其语法来说,是没有错误的,但程序运行却崩溃了。原因为:std:string 不能接受赋值为空指针。原因为:std::string 在赋值为空指针的时候,会...原创 2020-01-03 16:06:09 · 4932 阅读 · 0 评论 -
static类型容器
传统观念或者有写不正确的观念,认为static为不可修改。但实际是:static更多意味着,定义的变量在静态区。用于静态区属于程序的本地,并不可修改,导致static类型变量不可修改。容器本身,具有比较特殊的特性。在C++中,容器是作为一种模板;在JAVA中,容器是泛型编程。在C++中,通常应该考虑内存的分配和释放,尤其是涉及到堆内存的时候。但在C++的STL中,容器通常是不需要进行考...原创 2019-12-23 19:46:53 · 586 阅读 · 0 评论 -
C++容器之vector
1.C++容器 容器是很多编程语言必不可少的功能。容器,本身是数据结构;这种数据结构承载了各种数据类型。容器是泛型编程的重要承载。 容器,不仅提供了数据结构,还提供了各种算法和功能。所谓算法,即解决问题的方法。容器提供了一系列解决问题的方法(即算法),从而带来使用的便利性。 容器,还有个特点是:提供了分配器。分配器负责容器空间的分配和释放;这带来...原创 2019-11-28 15:41:49 · 167 阅读 · 0 评论 -
QT容器QList的contains用法使用限制
今天试图用QT的容器QList因为QList在QT设计的时候,体积足够小,是倡导使用的容器之一。但调用QList但contains接口的时候,发现编译失败。继续查原因,发现QList的contains函数,容器里承载的实体类型必须支持==操作符。比较坑的是,这个实体类型,恰好不支持==操作。于是整个QList的contains失败。关于QList的contains用法,具体可看QT的文档(...原创 2019-10-17 23:04:26 · 6324 阅读 · 0 评论 -
几种常见的树的区分:二叉树、平衡二叉树、红黑树、B树和B+树
1.图和树的关系 图和树的关系,是认识树的重要性的重要方法。 树是图的一个子集;图和树的最大区分是:有序和无序。 一个图可以是各种奇形怪状的,具有各种奇怪关系的,甚至有完全不相关的部分。图可以说是对世界本原的抽象,我们认识事物,往往是从一团混乱开始的;我们得到最初的世界的样子,是一个混乱的图状结构。 而树,则是有序的。树有根节...原创 2019-09-02 21:14:32 · 1470 阅读 · 0 评论 -
JAVA容器之List
1.JAVA容器 容器,是指一系列数据结构和算法的集合;在容器内部,提供了范型的数据结构和算法,从而为让不同数据类型的同一算法得以实现。在具体的算法实现的时候,是需要考虑不同数据结构的影响的,因为不同的数据结构会影响同一算法的时间复杂度和空间复杂度;但容器的最终目的是提供算法接口,而让软件工程师只用了解算法的实现,而不需要再重复造轮子而实现算法。从工程性的角度来说,容器的作用非常...原创 2019-09-21 23:28:28 · 140 阅读 · 0 评论 -
QT QMapIterator
QT的迭代器有两种类型:STL形式和JAVA形式。QT的STL形式的迭代器,和STL的迭代器用法类似,而JAVA形式的迭代器,则提供了一套迭代器类,用于QT容器的迭代。这其中,就有QT的迭代器类QMapIterator。QMapIterator的公共函数如下:QMapIterator(const QMap<Key, T> &map) bool fi...原创 2019-09-25 23:00:18 · 2443 阅读 · 0 评论