数据结构—B树 引言我们都知道二叉查找树的查找的时间复杂度是O(log N),其查找效率已经足够高了,那为什么还有B树和B+树的出现呢?难道它两的时间复杂度比二叉查找树还小吗? 答案当然不是,B树和B+树的出现是因为另外一个问题,那就是磁盘IO;众所周知,IO操作的效率很低,那么,当在大量数据存储中,查询时我们不能一下子将所有数据加载到内存中,只能逐一加载磁盘页,每个磁盘页对应树的节点。造成大量磁盘IO操作...
C++ Kruskal算法 最小生成树之kruskal(克鲁斯卡尔)算法kruskal算法:同样解决最小生成树的问题,和prim算法不同,kruskal算法采用了边贪心的策略,思想要比prim算法简单。算法基本思想:在初始状态时隐去图中的所有边,这样图中每个顶点都自成一个连通块。之后执行下面的步骤:(1)对所有的边按边权从小到大进行排序;(2)按边权从小到大测试所有边,如果当前测试边所连接的两个顶点不在同一个连通块中...
Pandas库之DataFrame 参考:https://www.cnblogs.com/IvyWong/p/9203981.html参考csdn:https://blog.csdn.net/u014281392/article/details/753315701 简介DataFrame是Python中Pandas库中的一种数据结构,它类似excel,是一种二维表。或许说它可能有点像matlab的矩阵,但是matlab的矩阵...
strcpy和strncpy的用法 char * strncpy(char *s1,char *s2,size_t n); 将字符串s2中最多n个字符复制到字符数组s1中,返回指向s1的指针。 注意:如果源串长度大于n,则strncpy不复制最后的’\0’结束符,所以是不安全的,复制完后需要手动添加字符串的结束符才行。 Strcpy和Strncpy的区别- - 第一种情况: char * p=“how are y...
C++ 递增运算符:前置++和后置++的区别 首先说下结论:迭代器和其他模板对象应该使用前缀形式 (++i) 的自增,,自减运算符,因为前置自增 (++i) 通常要比后置自增 (i++) 效率更高前置++和后置++,有4点不同:返回类型不同、形参不同、代码不同、效率不同int main(){Age a;(a++)++; //编译错误 ++(a++); //编译错误 a++ = 1; //编译错误 ...
vs2019中使用scanf_s 今天把我整崩溃了,记录下,也留给有用的人。。char inStr[1001];scanf_s("%s", inStr, sizeof(inStr));//char* s = inStr;char* s = inStr;cout << s << endl;scanf_s要输入三个参数,最后一个表示要输入的char的大小。...
C++ getline()函数详解 由于自己在分割字符串和读取行中内容时总是碰到,这里把一起整理一下。getline()函数用于读入一整行数据,一种定义在头文件<istream>中,是istream的成员函数,一种定义在头文件<string>中,是普通文件。1)<istream>中的两种重载形式istream& getline(char* s, streamsize n);...
C++ 表达式必须含有常量值变量 #表达式必须含有常量值变量DEV-C++使用的编译器是GCC,它允许使用变量作为数组的长度定义数组。VC的编译器不是GCC,它不允许你这样做。方法1:使用动态内存分配,new和delete操作符int num;cin >> num;int* a = new int[num];…delete[] a;方法2:使用vector容器int num;cin >>...
C++中remove和remove_if 一、remove()函数remove(begin(), end(), const T& value) //移除区间[begin, end)中与value相等的元素;remove只是通过迭代器的指针向前移动来删除,将没有被删除的元素放在链表的前面,并返回一个指向新的超尾值的迭代器。由于remove()函数不是成员,因此不能调整链表的长度。remove()函数并不是真正的删除,要想真正...
vector<string> string:#include 基本接口:声明字符串: string s; //生成一个空字符串s string s(str) //拷贝构造函数 生成str的复制品 string s(str,stridx) //将字符串str内“始于...
不能实例化抽象类 什么样的类是抽象类呢?C++没有C Sharp中的关键字abstract,但是当一个类中有一个或多个纯虚函数的时候,这个类就自动成为了抽象类,即不可以实例化。纯虚函数是一种特殊的虚函数,在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。在实际开发中,很多时候你都需要继承别人的类,或是同事写的类,或是一些开源库中的类...
C++ typedef typedef的用途: 为已有的数据类型重新命名。<1. 基本类型>int a=10;//为整型重新命名typedef int ZS;ZS b=10;1234<2. 结构体的使用>a. 为结构体重新命名://ST---->等价于struct Studenttypedef struct Student{int id;char sex;}...
C++友元函数 原文链接:https://blog.csdn.net/fanyun_01/article/details/79122916在C++中,我们使用类对数据进行了隐藏和封装,类的数据成员一般都定义为私有成员,成员函数一般都定义为公有的,以此提供类与外界的通讯接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外...
C++中size_t和size_type 为了使自己的程序有很好的移植性,c++程序员应该尽量使用size_t和size_type而不是int, unsignedsize_t是全局定义的类型;size_type是STL类中定义的类型属性,用以保存任意string和vector类对象的长度string::size_type 制类型一般就是unsigned int, 但是不同机器环境长度可能不同 win32 和win64上长度差别;si...
linux cat命令 cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的;cat主要有三大功能:1.一次显示整个文件。$ cat filename2.从键盘创建一个文件。$ cat > filename只能创建新文件,不能编辑已有文件.3.将几个文件合并为一个文件。$cat file1 file2 > filecat具体命令格式为 : cat [-...
Linux常用命令 - cp Linux cp命令主要用于复制文件或目录-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。-f:覆盖已经存在的目标文件而不给出提示。-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。-p:除复制文件的内容外...
基础内容 pycharm是什么,为什么让我指定interpreter记事本最开始写C语言代码的时候,人们使用vi,记事本等软件写代码,写完了之后用GCC编译,然后运行编译结果,就是二进制文件。python也可以这样做,用记事本写完代码,保存成如test.py的文件后,通过命令python test.py可以运行这一文件。最初的C语言代码都是通过这种方式写的。但是人们很快发现了一个问题,就是这么弄太麻烦了...
for循环中的i++和++i for(int index = 0;index < 1024;++index)p[index] = 0;相当于for(int index = 0;index < 1024;){p[index] = 0;++index;}这里的++index和index++的作用是一样的。另外int *p = new[1024];...