C/C++
C/C++语法规范
爱写代码的马良
强者不屈于命运。
展开
-
布隆过滤器
布隆过滤器定义布隆过滤器是一种概率型数据结构,它的特点是高效的插入和查询,能明确告知某个字符串一定不存在或者可能存在。布隆过滤器相比传统的查询结构(例如:hash,set,map等数据结构)更加高效,占用空间更小;但是其缺点是它返回的结果是概率性的,也就是说结果存在误差的,虽然这个误差是可控的;同时它不支持删除操作;组成:位图(bit数组)+ n个hash函数原理当一个元素加入位图时,通过k个hash函数将这个元素映射到位图的k个点,并把它们置为1;当检索时,再通过k个h原创 2022-02-22 15:52:46 · 415 阅读 · 0 评论 -
C++智能指针unique_ptr
unique_ptr提供了以下操作:1. 构造函数虽然这里的构造函数比较多,但是可以发现,实际上是没有类似auto_ptr的那种拷贝构造:void foo_constuct(){ //这样构造是可以的 std::unique_ptr<int> p(new int(3)); //空构造 std::unique_ptr<int> p4; //下面三种写法会报错 std::unique_ptr<int> p2 =原创 2022-01-05 12:52:21 · 530 阅读 · 1 评论 -
使用引用计数实现最简单的智能指针2
使用模板技术完善智能指针,将引用计数封装到类中#include <iostream>#include <string>using namespace std;template<class T>class CSmartPtr;template<class T>class CRefCount{public: friend class CSmartPtr<T>; CRefCount(T *stu) { m_stu = st原创 2022-01-04 13:11:12 · 378 阅读 · 0 评论 -
使用引用计数实现最简单的智能指针1
工作中经常使用到C++中的智能指针,所以抽空实现了自己的一个最简单的,后面有空再完善一下#include <iostream>#include <string>#include <string.h>#include <cstdio>#include <functional>using namespace std;class CTest{ public: CTest() = delete;原创 2021-12-30 23:04:07 · 359 阅读 · 0 评论 -
C++可变参数输出控制台
C++可变参数输出控制台C++可变参数输出控制台C++可变参数输出控制台项目中经常用到输出调试,之前一直用C 实现,比较麻烦,需要指定数据类型。C版本代码输出控制台#define De_printf(str,args...) do{\ printf("%s:%s:%d] ", __FUNCTION__, __FILE__, __LINE__);\ print原创 2021-12-22 10:32:26 · 655 阅读 · 0 评论 -
企业链表源码
LinkList.h源码#ifndef LINKLIST_H#define LINKLIST_H#include<stdlib.h>#include<stdio.h>//链表小结点typedef struct LINKNODE{ struct LINKNODE* next;}LinkNode;//链表结点typedef struct LINKLIST{ LinkNode head; int size;}LinkList;//遍历函数指针typed原创 2021-08-22 22:36:12 · 85 阅读 · 0 评论 -
C语言常用函数
常用函数1. linux系统IO函数1.1 open/close函数#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>// open函数只有一个, 是变参函数// 作用: 打开或者的创建一个文件// 打开文件int open(const char *pathname, int flags); 参数: - pathname: 要打开的文件的路径(相对/绝对) -原创 2021-08-19 08:24:22 · 333 阅读 · 1 评论 -
消息队列接口的简单封装
//头文件msgipc_msg.h#ifndef _WBM_MY_MSG_H_#define _WBM_MY_MSG_H_#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <unistd.h>#include <errno.h>#include <sys/ms原创 2017-01-15 22:17:05 · 1587 阅读 · 0 评论 -
C语言常见6大排序
#include #include #include #include #define MAXSIZE 10#define SWAP(A,B) (A)^=(B);(B)^=(A);(A)^=(B);//创建数组int * CreateArray(){ //定义随机数 srand((unsigned int)time(NULL)); //创建数组原创 2016-11-28 13:44:29 · 696 阅读 · 0 评论 -
C++实现简单的socket通信
最近一直有人问我会不会c++的socket,其实我感觉c++只不过是类中多了一些方法,把c中面向过程的内容搬到c++的类方法中.大致并没有多大改变.干吗还要问你会不会了----------------------------------------------------------------下面是C++ server端------------------------------------原创 2016-09-06 00:30:39 · 9974 阅读 · 0 评论 -
利用map容器中统计文件中相同字符串的个数
//c++ 统计文件中相同字符串的个数#include #include #include #include using namespace std;int main(int argc,char*argv[]){map mapA;ifstream myfile;//打开文件myfile.open("1.txt", ios::in);原创 2016-09-10 22:05:41 · 1669 阅读 · 0 评论 -
单例模式的简单demo
//C++版本#include using namespace std;class R{static R* instance;R(){}public:static R* GetInstance(){return instance;}};R* R::instance = new R;/*1.构造函数放在非public控制权限原创 2016-04-30 18:20:29 · 438 阅读 · 0 评论 -
C++ 访问控制(public,protected,private)
1:C++中的继承方式会影响子类的对外访问属性 public继承:父类成员在子类中保持原有访问级别private继承:父类成员在子类中变为private成员protected继承:父类中public成员会变成protected,父类中protected成员仍然为protected, 父类中private成员仍然为private. 父类成员访问级别原创 2016-04-30 17:35:24 · 445 阅读 · 1 评论 -
简单的string 类库的封装
#include #include using namespace std;class String{int len;char *space;public://无参构造String():len(){space=new char(0);}//有参构造String(const char *str){len=strlen(str);原创 2016-04-30 14:16:18 · 412 阅读 · 0 评论 -
C语言写的简单的单向链表
#include #include #include typedef int T;typedef struct Node{T data;struct Node *next;}Node;//头结点创建Node* CreateHead(){Node *p=(Node *)malloc(sizeof(Node));if(p==N原创 2016-04-30 14:08:47 · 286 阅读 · 0 评论