C++
努力的zjk
这个作者很懒,什么都没留下…
展开
-
数据结构——二叉树进阶
在我看来,在数据结构中,存在三个最经典的树型结构,他们分别是二叉排序树(BST),二叉平衡树(AVL) 和 红黑树(BRT)。二叉排序树又叫做二叉搜索树,它可以是一棵空树,也可以是具有三个性质的一棵二叉树。性质一:若它的左子树不为空,则左子树上的所有结点的值均小于它的根结点的值性质二: 若它的右子树不为空,则右子树上的所有结点的值均大于它的根结点的值性质三: 左右子树也是二叉排序树。构造二叉搜索树的目的是提高查找和插入删除关键字的速度。因为二叉排序树是一个排序好的有序数据集,查找的速度肯定是快于无原创 2020-12-28 01:22:29 · 389 阅读 · 0 评论 -
shared_ptr探究
boost库下shared_ptr的源码shared_ptr类构造函数拷贝构造函数赋值语句私有成员#include <thread>#include <mutex>template <class T>class SharedPtr{public: SharedPtr(T* ptr = nullptr) : _ptr(ptr) , _pRefCount(new int(1)) , _pMutex(new mutex) {原创 2020-11-17 22:19:26 · 323 阅读 · 0 评论 -
项目一补充
快速搜索文档神器之所以快速,是因为我用到了数据库,Sqlite3.将本地的所有文件加载在数据库,通过sql语句来进行文件的搜索那么如何知道本地文件和数据库的文件是一一对应的,这就需要添加一个扫描模块,先扫描本地的文件,再扫描数据库的文件,进行比对,如果数据库文件少了,则进行插入;如果数据库文件多了,则要进行删除。而要操作数据库,则需要把数据库进行封装,并且把数据库里的数据进行封装,作为一个模块来进行操作。...原创 2020-10-24 22:25:17 · 201 阅读 · 0 评论 -
智能指针的初步认识
开辟了内存空间,必定要释放内存空间,如果不释放就会造成内存泄漏,引发安全问题。如果代码量很少的时候,我们会记得释放掉开辟的空间,但是如果代码量过大,我们会忘记开辟的空间,那么就需要智能指针来帮助我们自动释放空间。例如:#include<memory>int main(){ int* tmp = new int[10]; auto_ptr<int> ap(tmp); cout << *ap <<endl; //delete []tmp; re原创 2020-10-22 14:01:15 · 252 阅读 · 0 评论 -
项目二——快速搜索文档神器
#pragma once#include<iostream>using namespace std;#include<string>#include<vector>#include<set>#include<stdarg.h>#include<windows.h>#include<io.h>#include<thread>#include<chrono>#inclu原创 2020-09-25 16:33:34 · 2129 阅读 · 0 评论 -
C++——多态
多态调用条件:1 .必须通过基类的指针或者引用调用虚函数2 .被调用的函数必须是虚函数,且派生类必须以基类的虚函数进行重写不符合就是普通调用class Person{public: virtual B* f() { cout << "Person::f()" << endl; return new B; }};class Student{p...原创 2019-12-19 21:12:28 · 256 阅读 · 0 评论 -
C++——继承
继承基类成员访问方式的变化类成员/继承方式public继承基类的public成员派生类的public成员基类的protected成员派生类的protected成员基类的private成员在派生类不可见类成员/继承方式protected继承基类的public成员派生类的protected成员基类的protected成员派生类...原创 2019-12-12 20:19:18 · 213 阅读 · 0 评论 -
C++——vector
vector原创 2019-11-29 21:51:02 · 181 阅读 · 0 评论 -
C++——List容器
List容器接口的使用#include<list>void test_list1(){ list<int> l1; list<int> l2(10,3); list<int> l3(l2.begin(),l2.end()); list<int> copy(l3); list<int>::iterator c...原创 2019-11-28 21:23:13 · 229 阅读 · 0 评论 -
C++——String
String(重要)int StrToInt1(string str)//遍历字符串{ for(size_t i = 0; i < str.size(); ++i) { cout << str[i] << " "; //cout << str.operator[ ](i) << " " ; } cout <<...原创 2019-11-28 20:58:09 · 253 阅读 · 0 评论 -
C++——类与对象
类的6个默认成员函数1。构造2。析构3。拷贝构造4。赋值操作符重载5。const成员6。取地址操作符重载和const修饰的取地址操作符重载原创 2019-11-24 13:53:25 · 159 阅读 · 0 评论