C/C++学院
文章平均质量分 85
永不过时的语言c/c++。学习资源为传智播客视频。
吴英强
80后,IT男,全栈工程师。
展开
-
【C/C++学院】0907-象棋五子棋代码分析/寻找算法以及排序算法
象棋五子棋代码分析编译代码报错:错误 1 error MSB8031: Building an MFC project for a non-Unicode character set is deprecated. You must change the project property to Unicode or download an additional library. See原创 2016-03-03 21:50:33 · 2206 阅读 · 0 评论 -
【C/C++学院】0906-递归转栈/二叉树实现
递归转栈用栈实现递归.cpp#include#include using namespace std;int printN(int n){ if (n>0) { cout << n; return printN(n - 1); }}void printNS_shunxu(int n){ stack mystack;AAA: if (n > 0)原创 2016-03-01 21:13:48 · 1634 阅读 · 0 评论 -
【C/C++学院】0905-boostSocketTCPUDP/虚函数表的调用/复杂表达式
boostSocketTCPUDPServerudp.cpp#include #include#include #include using namespace std;using namespace boost::asio;void main(){ io_service io_serviceA;//一个服务的类,给这个UDP通信初始化 ip::udp::sock原创 2016-02-28 20:02:45 · 1509 阅读 · 0 评论 -
【C/C++学院】0904-boost智能指针/boost多线程锁定/哈希库/正则表达式
boost_array_bind_fun_refArray.cpp#include#include #include using namespace std;using namespace boost;void mainA (){ array barray = { 1, 2, 3, 4, 5 }; barray[0] = 10; barray.at(4) =原创 2016-02-21 17:46:22 · 1852 阅读 · 0 评论 -
【C/C++学院】0903-Boost/线性表/哈希存储
boost模板库与线性表Boost的安装 使用boost,首先需要进行的环境配置。#include #include #include//区别using namespace std;void main(){ boost::array myarray = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; boost::array::itera原创 2016-02-17 22:35:35 · 1730 阅读 · 0 评论 -
【C/C++学院】0901-设计模式的汇总演练
备忘录模式数据库的备份,文档编辑中的撤销等功能#include #include #include using namespace std;//备忘录模式:备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。//备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捉住,//并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态。//同时跟几原创 2016-02-15 20:59:30 · 4757 阅读 · 2 评论 -
【C/C++学院】0831-类与对象的异常/面试100题1-100
类与对象的异常Cpp异常#include #include using namespace std;//标识错误的类型class wrong {};int intdiv(int a, int b){ try { if (b==0) { throw 10;//可以是任何对象 wrong(); } int c = a / b;原创 2016-01-10 22:18:13 · 1607 阅读 · 2 评论 -
【C/C++学院】0830-兰不达表达式/STL算法-操作数据
兰不达表达式#include#include#include//算法 lambda表达式,不仅仅适用与array ,也适用于vectorvoid main1(){ std::vector myvector; myvector.push_back(11); myvector.push_back(22); myvector.push_back(33); myvector.p原创 2016-01-06 21:36:38 · 1661 阅读 · 0 评论 -
【C/C++学院】0829-位容器multimapmutisetString/算法函数兰不达表达式以及类重载/GPU编程
位容器multimapmutisetStringMultiset#include #include using namespace std;void mainA(){ multiset myset; myset.insert(100); myset.insert(101); myset.insert(100); myset.insert(103); myset.原创 2015-12-04 13:01:32 · 1729 阅读 · 0 评论 -
【C/C++学院】0828-STL入门与简介/STL容器概念/容器迭代器仿函数算法STL概念例子/栈队列双端队列优先队列/数据结构堆的概念/红黑树容器
STL入门与简介#include#include //容器#include//数组#include //算法using namespace std;//实现一个类模板,专门实现打印的功能template //类模板实现了方法class myvectorprint{public: void operator ()(const T &t)//重载,使用(),打印 {原创 2015-12-02 12:21:23 · 2547 阅读 · 0 评论 -
【C/C++学院】0826-文件重定向/键盘输入流/屏幕输出流/字符串输入输出/文件读写简单操作/字符文件读写二进制与文本差别/get与getline挖掘数据/二进制与文本差别/随机位置/多线程初级
文件重定向#includeusing namespace std;void main(){ char str[30] = { 0 }; cin >> str; cout << str; system(str); cerr << "error for you"; cin.get(); cin.get();}键盘输入流#include#incl原创 2015-11-08 13:23:07 · 2303 阅读 · 1 评论 -
【C/C++学院】0825-类模板/final_override/类模板与普通类的派生类模板虚函数抽象模板类/类模板友元/位运算算法以及类声明/Rtti 实时类型检测/高级new创建/类以及函数包装器
类模板类模板多个类型默认类型简单数组模板#pragma oncetemplate //类模板可以有一个默认的值class myArray{public: myArray(); ~myArray();};#include "myArray.h"template //每一个函数都需要加上一个默认的值myArray::myArray() //类模板成员函数在外部,原创 2015-11-03 12:34:39 · 2154 阅读 · 0 评论 -
【C/C++学院】0823-静态联合编译与动态联合编译/父类指针子类指针释放/虚函数/纯虚函数概念以及虚析构函数/抽象类与纯虚函数以及应用/虚函数原理/虚函数分层以及异质链表/类模板的概念以及应用
静态联合编译与动态联合编译#include #include //散列void go(int num){ }void go(char *str){}//class//::在一个类中class A{public: void go(int num) { } void go(char *str) { }};void main(){ /原创 2015-11-02 12:09:24 · 1814 阅读 · 0 评论 -
【C/C++学院】0822-类型转换函数与构造转换函数/类的继承/类的继承以及区别/继承静态成员与静态函数//继承实现代码重用/单继承QT案例/多继承简介以及实战/Gpu编程
类型转换函数与构造转换函数#includeclass fushu{public: explicit fushu(int num)//避免隐式转换,引发歧义 { x = num; y = num; } void print() { std::cout << x << "+" << y << "i" << std::endl; } operator int()原创 2015-10-29 08:18:13 · 1848 阅读 · 2 评论 -
【C/C++学院】0820-Nullptr/const对象/类指针引用以及mallocfree与newde/类重载运算符/QT加法重载/类的重载赋值运算/自增在前在后差别/赋值重载深浅拷贝/重载下标
Nullptr#includevoid go(int num){ std::cout << "gonum" << std::endl;}void go(void *p){ std::cout << "gop" << std::endl;}void main(){ //void *p = nullptr; void *p = NULL;//C++是强类型,严格原创 2015-10-24 09:50:43 · 1198 阅读 · 0 评论 -
【C/C++学院】0819-/类的成员函数与const-mutable /构造与析构/拷贝构造deletedefault以及深浅拷贝/静态成员函数成员变量类在内存的存储默认参数/友元类以及友元函数
类的成员函数与const-mutable 成员函数Fushu.h#pragma once#include class fushu{public: int x; int y;public: fushu(); ~fushu(); void show(); inline void showall(int x, int y);//显式内联 void setxy原创 2015-10-23 08:19:19 · 1792 阅读 · 0 评论 -
【C/C++学院】0817-递归汉诺塔 双层递归 /CPP结构体 /面向过程与面向对象的编程模式/类的常识共用体实现一个类的特征/QT应用于类以及类的常识
递归汉诺塔 双层递归#include void han(int n, char A, char B, char C){ static int num = 1; std::cout << "第" << num << "次"; num++; if (n<1) { return; } else { han(n - 1, A, C, B); std::cout "原创 2015-10-03 13:35:18 · 2275 阅读 · 0 评论 -
【C/C++学院】0816-引用包装器/仿函数/转义字符 R”()”/using别名/模板元编程 比递归优化/智能指针/多线程/静态断言以及调试技能的要求 assert
引用包装器 std::ref(变量)#includetemplatevoid com(T arg)//模板函数,引用无效,引用包装器{ std::cout <<"com ="<< &arg << "\n"; arg++;}void main(){ int count = 10; int & rcount = count; com(count); std::cou原创 2015-10-02 08:22:23 · 2258 阅读 · 0 评论 -
【C/C++学院】0814-引用高级、引用高级增加/auto自动变量自动根据类型创建数据/Bool/Enum/newdelete全局/大数据乘法与结构体/函数模板与auto/宽字符本地化/inline
引用高级、引用高级增加#include#include// int a[10]// int (&ra)[10]// int a[2][5]// int (&ra)[2][5]void main1(){ int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int(&ra)[10](a);//引用就是给原来的变量有一个别名同一个原创 2015-09-21 13:12:53 · 1492 阅读 · 0 评论 -
【C/C++学院】0813-C与CPP不同以及命名空间简介/函数重载与函数默认参数/泛型auto/Newdelete
C与CPP不同以及命名空间简介命名空间在软件设计中的作用就是为了实现迭代式开发。命名空间的别名#include namespace runrunrunrun{ int a(10); char *str("gogogo"); namespace run //命名空间的嵌套 { int a(9); }}namespace runrunrunrun //命原创 2015-09-18 13:15:25 · 1497 阅读 · 0 评论 -
【C/C++学院】0805-语音识别控制QQ/语音控制游戏
语音识别控制QQQQ.cpp 单独测试控制qq的各种命令#includevoid openqq(){ ShellExecuteA(0, "open", "\"C:\\Program Files (x86)\\Tencent\\QQ\\QQProtect\\Bin\\QQProtect.exe\"", 0, 0, 1);}void closeqq(){ system("原创 2015-09-16 13:28:05 · 2412 阅读 · 0 评论 -
【C/C++学院】0804-C语言和设计模式(继承、封装、多态)
C++有三个最重要的特点,即继承、封装、多态。我发现其实C语言也是可以面向对象的,也是可以应用设计模式的,关键就在于如何实现面向对象语言的三个重要属性。(1)继承性[cpp] view plaincopy1. typedef struct _parent 2. { 3. int data_parent; 4. 5. }Parent原创 2015-09-15 13:00:17 · 1847 阅读 · 3 评论 -
【C/C++学院】0802-链式栈/链表队列以及优先队列/封装链表库
链式栈// stacklinknode.h#define datatype intstruct stacknode{ int num;//编号 datatype data;//数据 struct stacknode *pNext;//指针域};typedef struct stacknode StackNode;//简化StackNode * init(StackNo原创 2015-09-13 20:09:48 · 1329 阅读 · 0 评论 -
【C/C++学院】0801-重定向以及文件扫描/二进制加密解密/简单加密/按照密码加密/动态库与静态库
重定向以及文件扫描#define _CRT_SECURE_NO_WARNINGS//关闭安全检查#include#includevoid main1(){ char str[100] = { 0 }; scanf("%s", str); printf("str=%s\n", str); system(str);原创 2015-09-10 13:19:58 · 2367 阅读 · 2 评论 -
【C/C++学院】0730-网站以及后门/结构体对齐、结构体面试分析/深拷贝与浅拷贝/队列/字符串封装
网站以及后门Windwos安装Apache服务器软件,进行测试。Localhost将可执行程序xxx.exe改为xxx.cgi放到apache服务器上,通过浏览器进行访问。#define _CRT_SECURE_NO_WARNINGS#include#include#includevoid main(){ printf("Content-typ原创 2015-09-03 13:01:11 · 1173 阅读 · 0 评论 -
【C/C++学院】0729-语音识别/Const关键字/字符串应用/内存分配以及处理海量数据
语音识别er.xml 资源管理器 打开企鹅 关闭企鹅 关机 重启 记事本 计算器 画图板 谭胜 yuyin.cpp#include #include #include #include #原创 2015-08-30 17:28:45 · 1401 阅读 · 0 评论 -
【C/C++学院】0828-数组与指针/内存分配/数据结构数组接口与封装
【送给在路上的程序员】对于一个开发者而言,能够胜任系统中任意一个模块的开发是其核心价值的体现。对于一个架构师而言,掌握各种语言的优势并可以运用到系统中,由此简化系统的开发,是其架构生涯的第一步。对于一个开发团队而言,能在短期内开发出用户满意的软件系统是起核心竞争力的体现。每一个程序员都不能固步自封,要多接触新的行业,新的技术领域,突破自我。原创 2015-08-16 21:24:12 · 1342 阅读 · 0 评论 -
【C/C++学院】0726-cppIDE/一级指针/指针数组/函数指针/函数指针数组/二级指针
cppIDE使用mfc和codeblocks中的mingw编译器。执行system命令中的bat批处理脚本。一级指针指针,结构体struct,联合union,枚举enum#include#includevoid changenum(int num) //函数的参数有副本机制 ,新建一个变量,容纳传递过来参数的值{ num = 3; printf("\nchang原创 2015-08-09 20:42:43 · 1250 阅读 · 0 评论 -
【C/C++学院】0725-内存补码分析/补码原码实战/打印整数二进制数据/静态库说明
内存补码分析#include#includevoid main3(){ //printf不会进行数据类型转换 printf("%d", (int)10.3);//printf不管你是什么类型,按照%d ,%f解析数据 printf("\n%f", (float)10); getchar();}void main4(){ int num = 100; printf(原创 2015-08-01 20:57:33 · 1207 阅读 · 0 评论 -
【C/C++学院】0724-堆栈简介/静态区/内存完成篇/多线程
堆栈简介、内存完成篇Const是一个伪常量#include#include#define N 10 //CPU产生,10 . 1010//const是伪常量,限定编译器尽量不直接修改void main(){ //int a=10; int *p=&a; const int num = 10;//避免直接赋值的修改,不可以避免间接赋值的修改 //num=1; c原创 2015-07-27 12:52:34 · 2331 阅读 · 2 评论 -
【C/C++学院】0723-32位与64位/调戏窗口程序/数据分离算法/内存检索/二分查找法/myVC
32位与64位地址与内存的关系4G = 4*1024M = 4*1024*1024k = 4*1024*1024*1024 Byte字节 = 2^3232位,指针就是4个字节#include void main(){ int num = 10; printf("%p\n", &num);原创 2015-07-23 13:05:58 · 1281 阅读 · 0 评论 -
【C/C++学院】(23)Mysql数据库编程--C语言编程实现mysql客户端
makefile.SUFFIXES: .c .oCC=gccSRCS=mysql1.c\ mydb.cOBJS=$(SRCS:.c=.o)EXEC=mysql1all: $(OBJS) $(CC) -o $(EXEC) $(OBJS) -lmysqlclient @echo '-------------ok--------------'.c.o:原创 2015-06-29 12:25:17 · 2850 阅读 · 0 评论 -
【C/C++学院】(29)网络编程--实现跨平台传输文件(TCP版)
为了实现跨平台,需要对跨平台的代码进行条件编译。//makefile-win.SUFFIXES: .c .oCC=gccSERVERSRCS=server.c\ pub.cCLIENTSRCS=client.c\ pub.c SERVEROBJS=$(SERVERSRCS:.c=.o)CLIENTOBJS=$(CLI原创 2015-04-12 20:29:04 · 2950 阅读 · 1 评论 -
【C/C++学院】(28)项目实战HttpServer--源码
项目实战HttpServer--源码下载地址myhttp脚本文件#!/bin/shWHOAMI=`whoami`PID=`ps -u $WHOAMI | grep myhttpd | awk '{print $1}'`if (test "$#" = 0) then echo "Usage: $0 [stop] [start] [status]" exit 0fii原创 2015-04-06 12:57:44 · 2624 阅读 · 0 评论 -
【C/C++学院】(27)项目实战HttpServer--原理分析
1.BS/CS结构异同 BS就是服务端+浏览器结构的网络程序,对于厂家来讲,只需要提供server,都是通过http协议完成的。优点:不需要维护客户端软件,用户在使用的时候无需安装任何第三方软件,只需要有浏览器就可以。不管是任何操作系统(windows,linux,ios)缺点:浏览器的功能有限,不能做过于复杂的界面,以及如果有些功能是需要在客户端完成的,浏览器可能实现不了。原创 2015-04-01 21:26:26 · 2667 阅读 · 0 评论 -
【C/C++学院】(26)Oracle数据库编程--程序模板c/cpp
Makefile.SUFFIXES: .c .oCC=gccPROC=procPROCSRCS=oracle.pcDBSRCS=$(PROCSRCS:.pc=.c)SRCS=main.c\ $(DBSRCS) OBJS=$(SRCS:.c=.o)ORACLE_HOME=/opt/oracle/product/11.2.0ORAFLAGS1=/usr/include/l原创 2015-03-24 22:38:24 · 1362 阅读 · 0 评论 -
【C/C++学院】(25)Oracle数据库编程--proc编程
一、oracle中事务的概念在oracle当中,所有对表的修改,都是在一个事务当中(事务就像一个内存的buffer一样)提交事务的语句commit;放弃事务rollback;原则:oracle所有对表的修改都是在事务当中,并不会直接修改到表。只有执行了commit或者rollback再生效或者放弃原创 2015-03-20 21:29:22 · 1677 阅读 · 0 评论 -
【C/C++学院】(24)Oracle数据库编程--管理oracle
一、启动和停止oracle停止和启动oracle需要切换到oracle用户才可以,其他用户都没有权限启动和停止oracle(包括root也没有权限)。1.运行sqlplus但不登录到oracle:sqlplus /nolog2.以系统管理员的权限连接到oracle服务器conn /as sysdba;3.启动oracle服务startup4.停止orac原创 2015-03-18 21:35:05 · 1060 阅读 · 0 评论 -
【C/C++学院】(22)Mysql数据库编程--C语言操作数据库
makefile.SUFFIXES: .c .oCC=gccSRCS=mysql1.c OBJS=$(SRCS:.c=.o)EXEC=mysql1all: $(OBJS) $(CC) -o $(EXEC) $(OBJS) -lmysqlclient @echo '-------------ok--------------'.c.o: $(CC) -Wall -原创 2015-03-06 21:30:07 · 1252 阅读 · 0 评论 -
【C/C++学院】(21)Mysql数据库编程--开发简介/SQL语句
一.mysql安装与管理tar 解包的命令tar xvf 包文件名称tar 打包的命令tar cvf 要打包的文件名称rpm卸载命令rpm -e 包名称rpm -e 包名称 --nodeps 强行卸载,不检查包的依赖关系rpm安装包命令rpm -ivh 包名称二.字符集1、首先操作系统的字符集为utf8原创 2015-03-05 21:28:52 · 1186 阅读 · 0 评论