C/C++
文章平均质量分 67
walkerkalr
学无止境,梦想不止
展开
-
C/C++基础学习代码(4)
程序1/************************构造和析构函数**********************/#include<vector>#include<iostream>struct Exampl{ //默认构造函数 Exampl() { std::cout << "exampl()" <...原创 2018-07-22 18:10:56 · 582 阅读 · 0 评论 -
Nginx学习——启动框架
Nginx启动时框架处理流程下图包含了Nginx框架在启动阶段执行的所有基本流程:源码:第1步:在src\core\nginx.c的main函数中实现:主要语句:/*第1步:调用ngx_process_options方法设置配置文件路径等参数*/ if (ngx_process_options(&init_cycle) != NGX_OK) {原创 2014-07-26 21:37:32 · 1064 阅读 · 0 评论 -
全面解析C++中的new,operator new与placement new
全面解析C++中的new,operator new与placement new 以下是C++中的new,operator new与placement new进行了详细的说明介绍,需要的朋友可以过来参考下new operator/delete operator就是new和delete操作符,而operator new/operator delete是函数。new operat转载 2014-03-27 12:54:10 · 1308 阅读 · 0 评论 -
STL之空间配置器分析
本文主要讲解了SGI STL中容器空间配置的实现。标准规范规定,STL空间配置器是一个名为allocator的模板类,同时也规定了它的必要接口,也就是说allocator类定义形式如下。其中接口allocator::allocate(),allocator::deallocate(),allocator::construct,allocator::destory()这四个接口及其重要。所以原创 2014-03-21 22:17:39 · 848 阅读 · 0 评论 -
n个骰子的点数
/***********************************************************************题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。***********************************************************************//*原创 2014-03-19 15:46:29 · 1000 阅读 · 0 评论 -
进程间的通信
进程间的通信 位于同一个进程中的多个线程共享同一个地址空间,因此线程之间的通信非常简单。然而,由于每个进程所拥有的4GB地址空间都是私有的,一个进程不能访问另一个进程地址空间中的数据,因此进程间的通信就比较困难。SOCKET也是进程间通信的一种方式(详见http://blog.csdn.net/walkerkalr/article/details/19443921)。本文将讲述进程间通原创 2014-02-22 10:04:41 · 1731 阅读 · 0 评论 -
动态链接库DLL
动态链接库1.静态库和动态库 静态库:函数和数据被编译进一个二进制文件(通常使用扩展名.LIB)。在使用静态库的情况下,在编译链接可执行文件时,连接器从库中复制这些函数和数据并把他们和应用程序的其他模块组合起来创建最终的可执行文件(.EXE文件)。当发布产品时,只需要发布这个可执行文件,并不需要发布被使用的静态库。动态库:在使用动态库时,往往提供两个文件:一个引入库(.l原创 2014-02-22 16:24:09 · 940 阅读 · 0 评论 -
网络编程(套接字)
网络编程1.套接字的类型1.1流式套接字SOCK_STREAM提供面向连接、可靠的数据传输服务,数据无差错、无重复的发送,且按发送顺序接收。实际上它是基于TCP协议实现的。1.2数据报套接字SOCK_DGRAM提供无连接服务。数据包以独立包形式发送,不提供无措保证,数据可能丢失或重复,并且接收顺序混乱。数据报式套接字实际上是基于UDP协议实现的。1.3原始套接字SOCK_R原创 2014-02-19 00:42:33 · 2249 阅读 · 0 评论 -
VC++数据库连接
1.简历基于对话框的MFC应用程序放置一个List Box和一个按钮2.在stdafx.h中加入#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","rsEOF")3.在按钮触发事件中加入如下代码 //初始化资源 CoInitialize(NULL); /原创 2014-02-22 22:31:05 · 912 阅读 · 0 评论 -
多线程基本概念及编程实现
多线程1.基本概念1.1程序和进程程序是计算机指令的集合,它以文件的形式存储在磁盘上。而进程通常被定义为一个正在运行的程序的实例,是一个程序在其自身地址空间的一次执行活动。一个程序可以对应多个进程,一个进程中也可以同时访问多个程序。进程的组成1)操作系统用来管理进程的内核对象内核是系统用来存放关于进程的统计信息的地方。内核对象是操作系统内部分配的一个内存块,该内存块原创 2014-02-19 23:39:22 · 1364 阅读 · 0 评论 -
前缀、中缀、后缀表达式转换详解
前缀、中缀、后缀表达式转换详解昨天参加了ebay实习生笔试题,其中一道题目给定了前缀表达式,让我们求转换成中缀表达式时辅助栈的做多情况下容乃几个元素以及中缀表达式的值。当时没有做出来,会后后网上查了些资料,发现很少有文章将前缀、中缀和后缀表达式之间的转化覆盖了,所以写下这篇文章希望能够将前缀、中缀和后缀表达式之间的转化讲解清楚。一般而言,我们最常遇到的是将中缀表达式转化为后缀表达式,既然这原创 2014-04-02 15:06:43 · 29269 阅读 · 10 评论 -
strcpy,strncpy, strlen, strcmp strcat函数实现
#include #include char* strcpy(char* strDest, const char* strSrc){ assert((strDest != NULL) && (strSrc != NULL)); char* address = strDest; while((*strDest++ = *strSrc++) != '\0') NULL; r原创 2014-08-12 10:08:54 · 1000 阅读 · 0 评论 -
两个链表的第一个公共节点
/********************************************************************题目:输入两个链表,找出它们的第一个公共节点。********************************************************************//*解题思路:先遍历两个链表得到他们的长度,就能知道哪个链表较长,以原创 2014-03-17 21:22:56 · 719 阅读 · 0 评论 -
C/C++基础学习代码(4)
程序1.//使用迭代器寻找和删除string对象中所有的大写字母#include <iostream>#include <string>using namespace std;int main(){ string str1("fhAsiSEFrh"); string::iterator first = str1.begin(); ...原创 2018-07-22 11:59:27 · 196 阅读 · 0 评论 -
C/C++基础学习代码(3)
程序1./**编写一个函数,其唯一的形参和返回值都是istream&类型。*该函数应一直读取流直到到达文件结束符为止*还应该将读到的内容输出到标准输出中,*以cin为实参来调用测试函数*/#include <iostream>using namespace std;istream& get(istream& in){ stri...原创 2018-07-22 11:06:02 · 217 阅读 · 0 评论 -
C/C++基础学习代码(2)
程序1./**编写程序定义一个vector对象,其每个元素都是指向string类型的指针,*读取该vector对象,输出每个string的内容及其相应的长度。*/#include <iostream>#include <vector>#include <string>using namespace std;int main(){ ...原创 2018-07-22 10:31:43 · 195 阅读 · 0 评论 -
C/C++基础学习代码(1)
/**编写程序由从标准输入的设备读入的元素数据建立一个int型vector对象,*然后动态创建一个与该vector对象大小一致的数组,*把vector对象的所有元素复制给新数组。*/#include &amp;amp;lt;iostream&amp;amp;gt;#include &amp;amp;lt;vector&amp;amp;gt;using namespace std;int main(){ vector原创 2018-07-22 10:05:04 · 6584 阅读 · 1 评论 -
C/C++之内存函数管理使用
C/C++之内存函数管理使用malloc()、free()、calloc()、realloc()函数在头文件stdlib.h中malloc()函数 原型: void *malloc(size_t size);malloc()的参数是需要分配的内存字节数。 如果内存池中的可用内存可以满足这个需求,maollc就返回一个指向被分配的内存块起始位置的指针(指针类型为voi...原创 2018-07-21 21:08:56 · 201 阅读 · 0 评论 -
C/C++学习之指针
C++学习之指针什么是指针指针:一个变量的地址称为该变量的指针。 指针变量:用来存放一个变量的地址的变量称为指针变量。但常把指针变量简称为指针。指针的用法//指针p被初始化,&amp;为取址符,表明p的初值为n的地址&amp;n。int n;int *p = &amp;n;//指针q被赋值,q的初值为&amp;n,则*q等于n;符号*为指针运算符。int *q;q ...原创 2018-07-21 20:29:55 · 129 阅读 · 0 评论 -
类对象内存布局,虚函数,虚拟继承和多重继承的实现
转载请注明出处:http://blog.csdn.net/walkerkalr,谢谢合作!如需源代码,请留邮箱地址。类对象内存布局,虚函数,虚拟继承和多重继承的实现机制1. 无继承关系的类2. 单一继承2.1单层继承2.2多重继承3. 多重继承一.无继承关系的类已知A类与B类,A类代表无虚函数的类,B类代表有原创 2014-01-27 20:35:32 · 2014 阅读 · 0 评论 -
排列组合总结
组合1.位运算实现求组合:在此介绍二进制转化法,即,将每个组合与一个二进制数对应起来,枚举二进制的同时,枚举每个组合。如字符串:abcde,则有00000---------null00001---------a00010 --------b00011---------ab00100---------c… …11111--------abcde给出程序原创 2014-09-04 11:01:14 · 1311 阅读 · 0 评论 -
从一个字符串中删除另一个字符串中出现过的字符
定义一个函数,输入两个字符串,从第一个字符串中删除在第二个中出现过的所偶字符串。例如从第一个字符串"We are students."中删除第二个字符中“auiou”中出现过的字符得到的结果是"W r stdnts"解题思路:利用哈希查找。#include void deleteStr2FromStr1(char* str1, char* str2){ if(str1 == NUL原创 2014-09-02 09:02:42 · 2307 阅读 · 0 评论 -
线程同步与异步套接字编程
线程同步与异步套接字编程1.事件对象上一次介绍了利用互斥对象实现线程同步。这次将继续介绍另两种线程同步的方法:事件对象和关键字代码段。1.1事件对象事件对象也属于内核对象,包括三个成员1)使用计数2)用于指明该事件是一个自动重置的事件还是一个人工重置的事件的布尔值3)用于指明该事件处于已通知状态还是未通知状态的布尔值事件对象有两种不同的类型:人工重置的事件对原创 2014-02-21 15:27:51 · 1102 阅读 · 0 评论 -
类成员指针
看到深度探索C++对象模型3.2节,其中给出了一个判断access section出现先后顺序的模板函数如下:templatechar* access_order( data_type1 class_type::* mem1,data_type2 class_type::* mem2){ assert(mem1 != mem2); return mem1 < mem2 ? "member原创 2014-01-04 11:40:07 · 1172 阅读 · 0 评论 -
计算程序运行时间的函数clock()
好几次看到网上有人将各种排序方法用执行时间来进行比较,但一直不知道执行时间是怎么计算出来的,或者说执行时间是调用什么函数才能得到的。今天在做关于大数的问题时,想要计算一下程序执行的时间,经过网上搜索,才发现资料挺多,也知道了clock()这个函数。下面就对clock()这个函数做一下解析。首先调用clock()时,必须先包含头文件 。其次,在这个头文件中,定义了一个存放时间值的类型cloc原创 2014-03-06 15:32:40 · 4140 阅读 · 0 评论 -
友元
我们已知道类具备封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程式中的其他函数是无法访问私有成员的。非成员函数能够访问类中的公有成员,但是假如将数据成员都定义为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检查等都需要时间开销,而影响程式的运行效率。 为了解决上述问题,提出一种使用友元的方案。友元是一种转载 2013-04-17 14:39:13 · 596 阅读 · 0 评论 -
C语言函数指针
C语言函数指针一、函数指针的定义顾名思义,函数指针就是函数的指针。它是一个指针,指向一个函数。看例子:A)char * (*fun1)(char * p1,char * p2);B)char * *fun2(char * p1,char * p2);C)char * fun3(char * p1,char * p2);看看上面三个表达式分别是什么意思?转载 2013-05-05 08:07:22 · 605 阅读 · 0 评论 -
用两个栈实现队列
/****************************************************题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入节点和在队列头部删除节点的功能。template class CQueue{public: CQueue(void); ~CQueue原创 2014-03-02 20:21:32 · 681 阅读 · 0 评论