- 博客(24)
- 收藏
- 关注
原创 STL map的几种赋值方式
map的几种赋值方法比较学习或者工作中经常会用到map,赋值是常用的操作,map有好几种赋值方法,哪一种方式最有效?网上了解了一些资料,在这里总结一下。常用的赋值方式有如下几种。 // 1) Assignment using array index notation Foo["Bar"] = 12345; // 2) Assignment using member function insert() and STL pair Foo.insert(std::pair&l
2020-12-08 11:55:35
7730
1
原创 常用排序算法时间复杂度、空间复杂度、稳定性比较
最近在准备秋招的期间遇到了很多排序算法时间复杂度、空间复杂度、稳定性相关的题目,那就做个大致的总结吧。排序算法 时间复杂度(平均) 时间复杂度(最坏) 时间复杂度(最好) 空间复杂度 稳定性 直接插入排序 O(n²) O(n²) O(n) O(1) 稳定 希尔排序 O(nlog2n) O(n²) O(n) ...
2019-09-17 12:05:01
314
原创 数据库事务ACID特性(原子性、一致性、隔离性、持久性)
ACID特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)原子性:一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,事务要么成功(可见),要么失败(不可见),不存在事务部分成功的情况。对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。一致...
2019-09-17 11:12:50
1848
原创 C++中类的三种访问权限以及继承方式
三种访问权限 类的访问控制限定符 public:公有成员,在任何位置都可以访问,该成员不仅可以在类内可以被访问,在类外也可以被访问,是对外提供的接口 private:私有成员,只能类内的成员函数中访问 protected:受保护成员,只能在类内以及派生类中访问 注意:类中的成员变量、成员函数默认是 private,结构中的成员变量、成员函数默认是 ...
2019-09-16 16:59:39
1683
原创 MySQL数据库入门教程
搭建好MySQL数据库就可以对数据库进行一些基本操作,这里附上ubuntu系统下搭建MySQL数据库方法的链接https://blog.csdn.net/qq_42685292/article/details/100745292 一、数据库操作1、创建数据库create database 数据库名防止重复创建可以加上条件判断create database if not ...
2019-09-12 10:35:45
840
原创 ubuntu系统下搭建MySQL数据库
1、保证ubuntu系统网络畅通 在虚拟机关机的状态下:设置->网络->连接方式->网络地址转换(NAT)。 2、更新数据源sudo apt-get update3、安装MySQL数据库 sudo apt-get install mysql-server mysql-client libmysqlclient-dev安装过程中需要设...
2019-09-11 18:54:36
724
原创 链接
链接1>首先什么是链接? 链接操作实际上是给系统中已有的某个文件指定另外一个可用于访问它的名称。对于这个新的文件名,我们可以为之指定不同的访问权限,以控制对信息的共享和安全性的问题。 如果链接指向目录,用户就可以利用该链接直接进入被链接的目录而不用打一大堆的路径名。而且,即使我们删除这个链接,也不会破坏原来的目录。2>硬链接 硬链接只能引用同一文件系统中...
2019-09-07 14:16:18
139
原创 Linux下查看物理内存
方式一:free直观的展示linux系统内存使用及交换区的容量大小等方式二:top动态实时查看系统中每一个进程的资源使用情况方式三:cat /proc/meminfo方式四:gnome-system-monitor一个显示最近一段时间内的CPU、内存、交换区及网络使用情况的视图工具。方式五:ps aux –sort -rss各个线程的资源使用情况方式六:vm...
2019-09-07 14:14:31
2370
原创 Linux ifconfig命令
Linux ifconfig命令1.作用:ifconfig用于查看和更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址,使用权限是超级用户。2.格式 ifconfig -interface [options] address3.主要参数如下:-interface:指定的网络接口名,如eth0和eth1。up:激活指定的网络接口卡。down:关闭指定的网络接口。...
2019-09-07 14:12:47
288
原创 New和Malloc的区别:
New和Malloc的区别:0. 属性new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持。1. 参数使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要显式地指出所需内存的尺寸。2. 返回类型new操作符内存分配成功时,返回的是对象类型的指针,类型严格与对象匹配,无须进行类型转...
2019-09-07 14:10:39
232
原创 在C++ 程序中调用被 C编译器编译后的函数,为什么被包含 extern "C"?
在C++程序中调用被C编译器编译后的函数,为什么被包含extern "C"?C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C语言不同。使用extern C可以解决名字匹配问题。...
2019-09-07 14:09:05
136
原创 C++中struct和class的区别
C++中struct和class的区别(一)默认继承权限。如果不明确指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理;(二)成员的默认访问权限。class的成员默认是private权限,struct默认是public权限。...
2019-09-07 14:07:51
104
原创 从尾到头打印链表
问题描述:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val(x), next(NULL) {* }* };*/cla...
2019-09-05 11:21:54
79
原创 拷贝构造与赋值构造
拷贝构造:拷贝构造又称复制构造,是一种特殊的构造函数,负责用一个现有的对象构造一个新的对象,只有一个引用型的参数(对象本身)。类名(类& ){}拷贝函数的参数应该加const保护,但编译器没有强制要求。编译器会自动生成一个拷贝构造,负责把旧对象中所有的数据拷贝给另一个新创建的对象。浅拷贝与深拷贝的区别:如果类成员中有指针,浅拷贝只拷贝指针的值,而深拷贝拷贝...
2019-08-16 21:01:52
670
原创 C++类对象的创建与释放过程
类对象的创建过程:分配内存(对象)——父类构造——成员构造——本身构造父类构造:按照继承表从左到右依次构造成员构造:按照声明顺序从上到下依次构造类对象的释放过程:本身析构——成员析构——父类析构——释放内存(对象)父类析构:按照继承表从右到左依次构造成员析构:按照声明顺序从下到上依次构造...
2019-08-16 20:16:23
489
原创 析构函数
1、析构函数是特殊的成员函数~类名(void){}无参数、无返回值、不能重载2、谁来调用?析构函数会在对象被销毁时自动调用,在整个生命周期内最多被调用一次。3、析构函数负责什么析构函数会释放构造函数所获取的所有资源,它的执行过程如下:A、先执行析构函数本身的代码B、调用成员类的析构函数C、调用父类的析构函数缺省的析构函数:如果一个类没有实现析构函数...
2019-08-16 20:08:15
297
原创 C++常函数
在函数参数列表与函数体之间有const修饰的函数。const修饰的是this指针。例如:class User{ char name[20]; char pass[7];public: User(const char* name,const char* pass) { strcpy(this->name,name); strcpy(this->pass,pa...
2019-08-16 19:47:55
211
原创 this 指针
this指针 类的成员变量单独存储在每个类对象中,成员函数存储在在代码段,所有类对象共享一份成员函数。而成员函数如何区别调用它的是哪个类对象呢?就是用到了this指针。每个成员函数其实都有一个隐藏的参数,这个参数就是this指针,它指向的就是类对象。在类中(成员函数、构造函数、析构函数)对成员变量、成员函数的访问都是借助了this指针。this指针是隐藏的,但也可以显式调用:...
2019-08-16 19:30:20
157
原创 C语言实现基于TCP协议的C/S模型
基于TCP协议的C/S模型编程模型: serve: client: 创建套接字(socket) 创建套接字(socket) 准备本机地址(sockaddr_in) 准备目标机地址 绑定(bind) 监听/宣告愿意连接(listen) ...
2019-08-11 10:52:41
2366
2
原创 UNIX/Linux系统下stat/fstat/lstat函数
stat/fstat/lstat #include <sys/stat.h> 功能:用来获取文件属性,返回值:成功返回0,失败返回-1 int stat(const char *path, struct stat *buf); path:需要文件路径 int fstat(int fd, struct stat *buf); fd:需要打开后的文件描述符 ...
2019-07-29 10:22:51
310
原创 fcntl函数详解
fcntl int fcntl(int fd, int cmd, ... /* arg */ ) cmd:操作指令,不同的操作指令决定,后续参数的个数和类型 注意:这是个变长参数的函数 int fcntl(int fd, int cmd, long newfd) cmd:F_DUPFD 功能:复制文件描述符,与fd操作同一个文件 返回值:如果newfd没有使用则返回newfd,...
2019-07-29 10:18:39
494
原创 UNIX/Linux系统调用下的文件操作
系统调用UNIX/Linux系统绝大部分功能都是通过系统调用实现,比如:open/close…UNIX/Linux把系统调用都封装成了C函数的形式,但他们并不是标准C的一部分。一切皆文件在UNIX/Linux系统下,几乎所有资源都是以文件形式提供了,所以在UNIX/Linux系统下一切皆文件,操作系统把它的服务、功能、设备抽象成简单的文件,提供一套简单统一的接口,这样程序就可以像访问磁盘上...
2019-07-29 09:59:57
2050
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人