C++ 文件操作与文件流

一、文件的概念

对于用户来说,常用到的文件有两大类:程序文件和数据文件。而根据文件中数据的组织方式,则可以将文件分为ASCII 文件二进制文件

  • ASCII 文件,又称字符文件或者文本文件,它的每一个字节放一个 ASCII 代码,代表一个字符。
  • 二进制文件,又称内部格式文件或字节文件,是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。
Read more
C++中的构造函数与析构函数

原文链接:https://www.cnblogs.com/mr-wid/archive/2013/02/19/2917911.html

一、构造函数介绍

1.构造函数的作用

构造函数主要用来在创建对象时完成对对象属性的一些初始化等操作, 当创建对象时, 对象会自动调用它的构造函数。一般来说, 构造函数有以下三个方面的作用:

  • 给创建的对象建立一个标识符;
  • 为对象数据成员开辟内存空间;
  • 完成对象数据成员的初始化。
Read more
STL中的优先级队列和堆问题

priority_queue 是容器适配器,它提供常数时间的(默认)最大元素查找,对数代价的插入与释出。

可用用户提供的 Compare 更改顺序,例如,用 std::greater 将导致最小元素作为 top() 出现。

priority_queue 工作类似管理某些随机访问容器中的,优势是不可能突然把堆非法化。

默认情况下priority_queue内部是以”降序“排列的,即默认大顶堆

Read more
求解某一范围内的全部素数

素数又称质数,是指大于1的自然数中,除了1和它本身,不能被其它自然数整除的数字。1被定义为非素数。大于1的自然数,如果不是素数则为合数2是最小的素数

问题:给定一个范围,求解这个范围内的全部素数。

Read more
经典 TopK 问题

什么是 Top K 问题?简单来说就是在一堆数据里面找到前 K 大(当然也可以是前 K 小)的数。

这个问题也是十分经典的算法问题,不论是面试中还是实际开发中,都非常典型。而这个问题其实也有很多种做法,你真的都懂了么?

经典的 Top K 问题有:最大(小) K 个数、前 K 个高频元素、第 K 个最大(小)元素,下面举例子说明:

栗子(以下所有方法均使用这个栗子)

从 data[1, 12]={5,3,7,1,8,2,9,4,7,2,6,6} 这n=12个数中,找出最大的k=5个。

Read more
LeetCode 单调栈的理解与使用

写在前面:LeetCode刷题笔记

近来刷题,遇到单调栈,感觉这是个宝藏解题思想,在此记录一下!


单调栈定义

单调栈是指:站内元素保持一定单调性(单调递增或单调递减)的栈。这里的单调递增或递减是指从栈顶到栈底单调递增或递减。

Read more
算术表达式的前序、中序、后序表示及其转换

写在前面:LeetCode刷题笔记


中序表达式转后序表达式(从左向右读入)

  1. 创建一个队列,存储后缀表达式;创建一个栈,存储操作符。

  2. 遇到操作数则送入队列。

  3. 遇到 “(“ ,入栈,遇到操作符入栈。

  4. 如果遇到其他运算符,不断去除所有运算优先级大于等于当前运算符的运算符,送入队列。最后,新的符号入栈。

  5. 遇到 “)” 括号,则将栈内从 “(“ 到 “)” 的所有操作符全部取出送入队列(左括号出栈但不入队)。

  6. 中序表达式读取结束后,如果栈不为空,则将栈内元素依次出栈送入队列。

  7. 此时队列的表达式即为原中序表达式的后序表达式。

Read more
C/C++二维数组参数传递

C/C++语言中二维数组参数传递常用三种方法:

  • 方法一:形参为二维数组并给出第二维的大小

    如:void sum(int a[][3])

Read more
朴素贝叶斯算法原理及实现

一、贝叶斯算法原理

1.条件概率公式

根据文氏图,可以看到在事件B发生的情况下,事件A发生的概率为:

Read more
matplotlib函数汇总

matplotlib函数汇总

Read more