-
浅谈do {...} while (0) 在宏定义中的作用
所属栏目:[经验] 日期:2020-12-31 热度:153
如果你是一名C程序员,你肯定很熟悉宏,它们非常强大,如果正确使用可以让你的工作事半功倍。然而,如果你在定义宏时很随意没有认真检查,那么它们可能使你发狂,浪费N多时间。在很多的C程序中,你可能会看到许多看起来不是那么直接的较特殊的宏定义。 下面[详细]
-
关于win32 gettimeofday替代方案
所属栏目:[经验] 日期:2020-12-31 热度:86
来自nginx代码: voidngx_gettimeofday(struct timeval *tp){ uint64_t intervals; FILETIME ft; GetSystemTimeAsFileTime( /* * A file time is a 64-bit value that represents the number * of 100-nanosecond intervals that have elapsed since * Janua[详细]
-
实现一个内存池管理的类方法
所属栏目:[经验] 日期:2020-12-31 热度:55
模拟STL中的freelist,有这个思想在内。 union obj{ union obj* next; char p[1]; };class MemoryPool{ public: MemoryPool() { union obj* temp; m_memory.assign(5,(union obj*)NULL); for(int i=0;im_memory.size();i++) { for(int j=0;jm_memory.size();j[详细]
-
关于C++对象继承中的内存布局示例详解
所属栏目:[经验] 日期:2020-12-31 热度:173
前言 本文给大家介绍的是关于C++对象继承的内存布局的相关内容,分享出来供大家参考学习,在开始之前说明下,关于单继承和多继承的简单概念可参考此文章 以下编译环境均为:WIN32+VS2015 虚函数表 对C++ 了解的人都应该知道虚函数(Virtual Function)是通过[详细]
-
C语言模式实现C++继承和多态的实例代码
所属栏目:[经验] 日期:2020-12-31 热度:185
这个问题主要考察的是C和C++的区别,以及C++中继承和多态的概念。 C和C++的区别 C语言是面向过程的语言,而C++是面向对象的过程。 什么是面向对象和面向过程? 面向过程就是分析解决问题的步骤,然后用函数把这些步骤一步一步的进行实现,在使用的时候进行一[详细]
-
利用C++简单实现顺序表和单链表的示例代码
所属栏目:[经验] 日期:2020-12-31 热度:125
本文主要给大家介绍了关于C++实现顺序表和单链表的相关内容,分享出来供大家参考学习,话不多说,来一起看看详细的介绍: 一、顺序表示例代码: #include assert.h#include iostreamusing namespace std;typedef int Datatype;class SeqList{public: SeqList[详细]
-
KMP 算法实例详解
所属栏目:[经验] 日期:2020-12-31 热度:179
KMP 算法实例详解 KMP算法,是由Knuth,Morris,Pratt共同提出的模式匹配算法,其对于任何模式和目标序列,都可以在线性时间内完成匹配查找,而不会发生退化,是一个非常优秀的模式匹配算法。 分析:KMP模板题、KMP的关键是求出next的值、先预处理出next的值[详细]
-
C++ 之 Asio 库(全面解析)
所属栏目:[经验] 日期:2020-12-31 热度:144
1 简介 Asio 是一个跨平台的 C++ 库,常用于网络编程、底层的 I/O 编程等 (low-level I/O),其结构框架如下: 2 使用 Asio 2.1 下载 Asio 库分为 Boost 版和 non-Boost 版,后者的下载地址为: http://think-async.com/ ,下载完成后,直接解压到合适位置即[详细]
-
数据结构 双机调度问题的实例详解
所属栏目:[经验] 日期:2020-12-31 热度:56
数据结构 双机调度问题的实例详解 1.问题描述 双机调度问题,又称独立任务最优调度:用两台处理机A和B处理n个作业。设第i个作业交给机器A处理时所需要的时间是a[i],若由机器B来处理,则所需要的时间是b[i]。现在要求每个作业只能由一台机器处理,每台机器都[详细]
-
C++遍历文件夹下的所有文件
所属栏目:[经验] 日期:2020-12-31 热度:102
数据分多个文件存储,读取数据就需要对多个文件进行操作。首先就需要定位到文件的名字,之后再对文件进行相应的读写操作。多次涉及多文件的读写操作,现将这个实现总结一下,方便自己和他人使用。具体代码如下: #include "stdafx.h" #include stdio.h #incl[详细]
-
从C语言过渡到C++之基本变化
所属栏目:[经验] 日期:2020-12-31 热度:129
说到C++和C语言的区别,大部分人都会想到面向对象和面向过程。然而这种说法并不准确。面向对象和面向过程指的是两种不同的程序设计思想,而C++与C是两种编程语言,难道C++就不能用于面向过程去解决问题吗,当然可以。而面向对象的设计思想也可以用到C语言中[详细]
-
浅谈C++ Socket编程
所属栏目:[经验] 日期:2020-12-30 热度:79
sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。 服务器端编程的步骤: 1:加载套接字库,创建套接字(WSAStartup()/socket()); 2:绑定套接字到一[详细]
-
c++中深浅拷贝以及写时拷贝的实现示例代码
所属栏目:[经验] 日期:2020-12-30 热度:95
本文主要给大家介绍了关于c++中深浅拷贝及写时拷贝实现的相关内容,分享出来供大家参考学习,下面话不多说,来一起看看详细的介绍: 一:浅拷贝lt;iostreamusing namespace std;class String{public: String(char* str = "") :_str(new char[strlen(str)+1])[详细]
-
C++ 实现稀疏矩阵的压缩存储的实例
所属栏目:[经验] 日期:2020-12-30 热度:107
C++ 实现稀疏矩阵的压缩存储的实例 稀疏矩阵:M*N的矩阵,矩阵中有效值的个数远小于无效值的个数,且这些数据的分布没有规律。 稀疏矩阵的压缩存储:压缩存储值存储极少数的有效数据。使用{row,col,value}三元组存储每一个有效数据,三元组按原矩阵中的位置[详细]
-
C语言实现查看进程是否存在的方法示例
所属栏目:[经验] 日期:2020-12-30 热度:134
本篇章节讲解C语言实现查看进程是否存在的方法。供大家参考研究具体如下: #includeunistd.h#includesys/types.h#includesys/wait.h#includestdio.h#includestdlib.h#includefcntl.h#includelimits.h#define BUFSZ 150void err_quit(char *msg){ p[详细]
-
利用C++实现双链表基本接口示例代码
所属栏目:[经验] 日期:2020-12-30 热度:181
链表 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个[详细]
-
C/C++ 数组和指针及引用的区别
所属栏目:[经验] 日期:2020-12-30 热度:173
C/C++ 数组和指针及引用的区别 1.数组和指针的区别 (1)定义 数组是一个符号,不是变量,因而没有自己对应的存储空间。但是,指针是一个变量,里面存储的内容是另外一个变量的地址,因为是变量所以指针有自己的内存空间,只不过里面存储的内容比较特殊。 ([详细]
-
VC++实现的OpenGL线性渐变色绘制操作示例
所属栏目:[经验] 日期:2020-12-30 热度:168
本篇章节讲解VC++实现的OpenGL线性渐变色绘制操作。供大家参考研究具体如下: 用到的思路就是在应力的最大值和最小值之间划分区间,每个区间的标识点对应不同的颜色值。 然后在区间内的应力值对应的颜色就进行插值来计算。 代码如下: #include GL[详细]
-
C语言SQLite3事务和锁的操作实例
所属栏目:[经验] 日期:2020-12-30 热度:59
本篇章节讲解C语言SQLite3事务和锁的操作。供大家参考研究具体如下: #include stdio.h#include sqlite3.hstatic int lib_get_value_callback(void *buf,int argc,char *argv[],char *column_name[]){ printf("argc:%d,%s argv[0]:%s,%s argv[1]:%[详细]
-
C/C++ 中gcc和g++的对比与区别
所属栏目:[经验] 日期:2020-12-30 热度:141
C/C++ 中gcc和g++的对比与区别 一、区别 1. gcc是GCC中的c编译器 g++是GCC中的c++编译器 2. 对于后缀为.c的文件,gcc当成c文件处理,而g++当成c++处理 对于后缀为.cpp的文件,两者都当成.cpp文件处理 3. 在编译阶段,g++会自动链接STL库,而gcc必须要加一个[详细]
-
总结一些你可能不知道的ip地址
所属栏目:[经验] 日期:2020-12-30 热度:188
前言 IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。提起IP地址,大家肯定都知道,但本文主要给大家总结了一些大家可能不知道的ip地址,分享出来供大家参考学习,下面话不多说,来一起看看详细的[详细]
-
C++ 数据结构二叉树(前序/中序/后序递归、非递归遍历)
所属栏目:[经验] 日期:2020-12-30 热度:125
C++ 数据结构二叉树(前序/中序/后序递归、非递归遍历) 二叉树的性质: 二叉树是一棵特殊的树,二叉树每个节点最多有两个孩子结点,分别称为左孩子和右孩子。 例: 实例代码: #include iostream #include Windows.h #include stack using namespace std; t[详细]
-
数据结构与算法 排序(冒泡,选择,插入)
所属栏目:[经验] 日期:2020-12-30 热度:123
数据结构与算法 排序(冒泡,选择,插入) 1.冒泡排序 1.1算法 冒泡排序(buddle-sort)算法的运作如下:(从后往前) 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最[详细]
-
C语言正则表达式操作示例
所属栏目:[经验] 日期:2020-12-30 热度:194
本篇章节讲解C语言正则表达式操作。供大家参考研究具体如下: #include stdio.h#include sys/types.h#include regex.hint main(int argc,char**argv){ int status; int i; int cflags = REG_EXTENDED; regmatch_t pmatch[1]; const size_t nmatch[详细]
-
分享一下8年C++面向对象设计的经验体会
所属栏目:[经验] 日期:2020-12-30 热度:121
六年前,我刚热恋“面向对象”(Object-Oriented)时,一口气记住了近十个定义。六年后,我从几十万行程序中滚爬出来准备写点心得体会时,却无法解释什么是“面向对象”,就象说不清楚什么是数学那样。软件工程中的时髦术语“面向对象分析”和“面向对象设计[详细]