当前位置: 首页 > news >正文

c++前置和后置的运算符重载,红黑树的概念以及static关键字

c++前置和后置的运算符重载,红黑树的概念以及static关键字

前置++和后置++的运算符重载

#include <iostream>
using namespace std;
class Interge{int a;public:Interge(int a):a(a){}int get() const{return this->a;}Interge& operator++(){this->a++;return *this;}Interge operator++(int){Interge temp= *this;this->a++;return temp;}
};
int main(){Interge i(0);int a=0;cout<<a++<<endl;cout<<i.get()<<endl;// i++;cout<<i.get()<<endl;i++++;// ++i;cout<<i.get()<<endl;return 0;
}

红黑树

红黑树的特性:(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!](4)如果一个节点是红色的,则它的子节点必须是黑色的。(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。

红黑树的应用

红黑树的应用比较广泛,主要是用它来存储有序的数据,它的时间复杂度是O(log2n),效率非常之高。例如,Java集合中的TreeSet和TreeMap,C++ STL中的set、map,以及Linux虚拟内存的管理,都是通过红黑树去实现的。

static关键字

总的来说

  • (1)修饰变量,static 修饰的静态局部变量只执行初始化一次,延长了局部变量的生命周期,直到程序运行结束以后才释放。
  • (2)修饰全局变量:全局变量只能在本文件中访问,不能在其它文件中访问, extern 外部声明也不可以。
  • (3)修饰一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用。static 修饰的变量存放在全局数据区的静态变量区,包括全局静态变量和局部静态变量,都在全局数据区分配内存。初始化的时候自动初始化为 0。
  • (4)不想被释放的时候,可以使用static修饰。比如修饰函数中存放在栈空间的数组,如果不想让这个数组在函数调用结束释放可以使用 static 修饰。
  • (5)考虑到数据安全性(当程序想要使用全局变量的时候应该先考虑使用 static)。

http://www.mrgr.cn/news/51531.html

相关文章:

  • 移动端面试问题笔记(一)
  • 【v5-Lite】模型导入使用-attempt_load
  • 【进阶OpenCV】 (16)-- 人脸识别 -- FisherFaces算法
  • 基于Arduino的简易收音机
  • DW-大模型生图安全疫苗注入作业记录
  • ES6新增特性
  • 60个java常用的代码(能够帮助您更好地理解Java编程)
  • Java 二分搜索
  • 二叉树——二叉树的前中后序遍历
  • 模型微调方法LoRA
  • 江大白 | 小目标检测的12种解决方案汇总,推荐收藏!
  • 【图解版】力扣第1题:两数之和
  • 小新学习Docker之Docker--harbor私有仓库部署与管理
  • GPTLink 源码快速搭建 ChatGPT 商用站点
  • 标准IO的函数接口
  • Linux——综合实用操作
  • HCIP——以太网交换安全(四)DHCP Snooping
  • Java项目实战II基于Spring Boot的周边游平台设计与实现(源码+数据库+文档)
  • 优先级队列(堆)
  • 电子商务网站维护技巧:保持WordPress、主题和插件的更新