
C++常用代码库
文章平均质量分 83
介绍 C++ 常用工具函数的实现
恋喵大鲤鱼
一条不止于编码的鱼。
展开
-
C++ 字符串分割
编译运行环境:VS2017 + Win32 + DebugC++ 中经常需要对字符串按照分隔符进行分割以获得子串序列,子串的顺序与其在原字符串中出现的顺序一致。一般有两种需求场景:(1)给定一个分隔符(单个字符或子串)分割字符串;(2)给定一个或多个分隔符(单个字符),分割字符串。当给定的分隔符不在原字符串中,则原字符串不被分割,返回单个元素为原字符串的 vector。注意,本文实现时,如果被分割后的子串为空串,则不计入最终的子串序列。原创 2019-10-14 18:19:44 · 4959 阅读 · 0 评论 -
C++ 读写文件
1.读取1.1所需头文件#include <assert.h>#include <iostream>#include <fstream>#include <string>1.2逐行读取void readTxt(string file){ ifstream ifs; ifs.op原创 2018-11-06 20:37:42 · 5480 阅读 · 0 评论 -
C++ Hash表模板
1.简介利用C++类模板实现任意类型的Hash表,提供的功能有: (1)指定shmkey或内存地址创建Hash表; (2)获取指定key元素; (3)遍历指定范围的元素,进行指定操作。备注:采用小于hash表大小的大质数尽量减少冲突,因为模的因子最少,冲突最少。因子最少的就是素数了。具体解释参见:算法分析:哈希表的大小为何是素数。缺点:该hash表模板未实现动态扩展,hash表容...原创 2018-03-27 14:39:37 · 2611 阅读 · 0 评论 -
C++ 数值与 string 的相互转换
使用函数模板将基本数据类型(整型、字符型、实型、布尔型)转换成string。//ostringstream对象用来进行格式化的输出,常用于将各种类型转换为string类型//ostringstream只支持<<操作符template<typename T> string toString(const T& t){ ostringstream oss; //创建一个格式化输出流原创 2016-03-18 22:11:54 · 84180 阅读 · 0 评论 -
网络字节序与主机字节序的相互转换
1.网络字节序与主机字节序在Linux网络编程中,经常碰到网络字节序与主机字节序的相互转换。说到网络字节序与主机字节序需要清晰了解以下几个概念。字节序,顾名思义,指字节在内存中存储的顺序。比如一个int32_t类型的数值占用4个字节,这4个字节在内存中的排列顺序就是字节序。字节序有两种: (1)小端字节序(Little endinan),数值低位存储在内存的低地址,高位存储在内存的高地址; (2原创 2018-01-13 19:08:38 · 11784 阅读 · 0 评论 -
C/C++ 获取本地日期时间方法
C/C++获取本地时间常见方法.原创 2015-08-17 23:56:12 · 41723 阅读 · 2 评论 -
C++ 实现简易 log 日志库
DEBUG(调试):DEBUG级别的日志用于记录应用程序的调试信息,例如变量的值、函数的执行路径等。TRACE(跟踪):这是最详细的日志级别,通常用于记录应用程序中最细微的操作和事件,以帮助调试和追踪问题。FATAL(致命): FATAL级别的日志用于记录严重的错误,通常表示应用程序遇到了无法继续运行的情况,可能会导致应用程序崩溃。WARN(警告):WARNING级别的日志用于记录警告信息,例如潜在的问题或不正常的情况,但不会导致应用程序终止。由此可见log日志在系统中的重要地位和存在的必要性。原创 2015-07-16 10:46:11 · 26565 阅读 · 15 评论 -
C 风格简易本地 log 系统
该 C 风格简易 log 日志系统,适合与Linux平台系统,主要用于格式化输出日志到本地指定的文件中,可指定log文件数目、最大大小、行数、按时间切换等功能,可满足基本的log日志功能。从项目中提炼出来,附上使用的demo,简单易懂,能快速上手。具体接口说明,参见源码。。原创 2017-12-07 19:03:17 · 1270 阅读 · 0 评论 -
vector向量容器元素排序与查找
1.利用标准库函数sort()对vector进行排序参考源码:#include <algorithm>#include <vector>vector<int> vec;//比较函数,这里的元素类型要与vector存储的类型一致bool compare(int a,int b){ return a<b; //升序排列}std::sort(vec.begin(),vec.end(),com原创 2016-03-18 22:56:37 · 7604 阅读 · 0 评论 -
C++ 字节流与二进制字符串相互转换(一个简单的明文加解密程序)
1.想法由来作为一名程序猿,在我们写文章、文字片段或者一句简短的话语,对外发表或者告之他人时,是否想过带点新意和创意呢?如果想过,那么这篇文章会给你一点帮助。本文介绍的是一个简单的将明文与二进制字符串相互转换的工具,尚未提供私有秘钥加密的功能,后续如有需要或网友有兴趣可自行扩展其功能。之所以写这个小工具,是因为我在写一篇blog时,一些较为私密的信息不想那么明显的公之于众,简单的将其转换成对应的二进原创 2016-08-10 17:09:58 · 22061 阅读 · 4 评论 -
C++ 字符串替换
C++实现字符串的分割和替换,作为平时代码库的储备,仅供各位猿友参考.原创 2015-08-24 16:18:44 · 4302 阅读 · 0 评论 -
C/C++代码调试:快速定位内存的申请和释放的位置
1.问题如果大型项目中出现类似于*** glibc detected *** logcacheinit: double free or corruption (fasttop): 0x00000000017db7f0 ***的错误。更糟糕的是项目既是多线程又是分布式运行的话,调试定位double free实在让人头痛。这个信心内核在程序崩溃的时候,只给出了被释放两次的内存地址,却没有给出程序出现两次原创 2016-01-14 15:51:56 · 4406 阅读 · 0 评论 -
使用互斥量封装的类
使用互斥量封装的一个简单的互斥量类,用于多线程项目中线程间同步。源码如下:////// \brief 互斥锁的封装///class Mutex {public: explicit Mutex() { } ~Mutex() { pthread_mutex_destroy(&m_Mutex); } void init() { in原创 2016-01-26 23:59:05 · 1441 阅读 · 0 评论 -
Linux下编程获取本地IP地址的常见方法
在进行Linux网络编程时,经常用到本机IP地址。本文罗列一下常见方法,以备不时之需。获取本机IP地址,是一个相当灵活的操作,原因是网络地址的设置非常灵活而且都是允许用户进行个性化设置的。比如一台计算机上可以有多块物理网卡或者虚拟网卡,一个网卡上可以绑定多个IP地址,用户可以为网卡设置别名,可以重命名...原创 2016-01-05 14:15:03 · 20838 阅读 · 1 评论