天翼云软件开发,知识文档技术编程知识文档是天翼云为开发者提供的互联网技术内容分享平台。内容涵盖软件开发相关内容资讯。开发者在软件开发专栏是可以快速获取到自己感兴趣的技术内容,与其他开发者们学习交流,共同成长。
红黑树是一种平衡搜索二叉树。红黑树的每个节点存储了一个标记颜色的变量(红色或黑色),通过对任意一条从根到叶子结点的路径中节点着色方式的限制,使树的最长路径不超过最短路径的两倍,因而红黑树处于一种近似平衡的状态。
priority_queue 即优先级队列,是一个具有权值观念的容器。priority_queue 完全以底部容器为根据,并额外加上了堆的处理规则,以保证 priority_queue 的堆序性质。与 stack 和 queue 一样,priority_queue是一种容器适配器。
迭代器适配器是迭代器应用于迭代器的产物,包括 insert iterator, reverse iterator 和 iostream iterator。迭代器适配器本质是对容器或一般迭代器进行封装,以使其更加符合需求。
list 的结构是一种带头双向循环链表,与单向不循环链表相比,双向循环链表找尾节点和进行节点操作时更方便快捷,哨兵位的设置也便于维护整个链表。
本文模仿SGI STL对红黑树进行封装,以实现简单的 set 和 map。本文的目的不是造一个更好的轮子,而是加深对C++封装与泛型技法的体会与理解。
被virtual修饰的成员函数被称为虚函数,虚函数的地址会被纳入类的虚函数表(virtual function table)。inline 和 virtual不会同时生效,用virtual修饰内联函数时,编译器会忽视函数的内联属性,此时函数不再是内联。虚函数一定不是内联函数。
作为面向对象的三大特性之一,继承(inheritance)是面向对象编程中代码复用的一种重要手段。继承是类设计层面的一种复用,它允许在保证原有类性质不变的基础上对其进行扩展新的属性和功能,产生新的类。
面向过程关注的完成一个事件的整个过程,面向对象关注的是事件的参与者及其之间的交互。
引用不是新定义一个变量,而是给已存在对象取了一个别名,从语言逻辑角度看,引用不占用额外的内存空间,而与被引用的对象共用同一块内存空间。
C++内存管理
C++是在C语言的基础上发展而来的,解决了C语言中存在的一些明显的问题。本文针对C语言存在的问题,引出C++中的解决方案,以对C++的语法进行说明和分析。
C++类和对象_封装part2
假设想写一个交换函数,将第一个和第二个对象进行交换,由于不确定要比较数据的类型,所以可以针对不同类型写出所有函数的重载。
所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。
计算机操作系统属于计算机基础,了解C语言从源文件到可执行文件的被处理过程,有助于认识操作系统,帮助我们理解C语言的某些程序现象。
KMP算法是Knuth、Morris、Pratt三人在BF算法的基础上同时提出的模式匹配的高效算法。本文以字符串匹配问题为例,以通俗易懂的语言对KMP算法进行逻辑分析、数学证明和代码实现。
C语言中的真/假和0/1在不同的情境下具有不同的意义,清楚地对他们进行区别有助于正确理解程序,并巧妙地解决一些问题。
在学习和使用C语言的过程中经常要编写管理内存的程序,往往提心吊胆。若是不想踩雷,唯一的办法就是深入理解内存管理,发现所有的陷阱并排除他们。本文主要讨论动态内存的使用和管理。
C语言实现扫雷(标记/取消标记雷、自动展开)
在C语言中有诸如整型家族、浮点型等多种数据类型。丰富的数据类型使C语言的表达性更强,但对于一些复杂的对象只有这些基本类型还不足以描述到位。为了表达一些较复杂的数据,就需要用到构造类型。
2023-04-18 14:15:05
2023-04-18 14:14:13
2023-04-19 09:23:13
2023-04-27 08:00:00
2023-04-18 14:15:05
2023-03-16 07:49:58