
C++
文章平均质量分 63
北京-大白
这个作者很懒,什么都没留下…
展开
-
c++文件读写
习惯了c读取文件,也有必要了解一下c++读取文件//读 #include <iostream.h> #include <fstream.h> #include <stdlib.h> int main () { char buffer[256]; ifstream in("test.txt"); if(!i...原创 2018-04-02 23:51:53 · 262 阅读 · 0 评论 -
c++ template模板使用
通用函数可变参数模板泛化之美–C++11可变模版参数的妙用#include <iostream>void showall(){ return;}template <typename R1,typename... Args>void showall(R1 var,Args... args){ std::cout << v...转载 2018-05-04 23:32:40 · 611 阅读 · 0 评论 -
c++ 编程过程中遇到的问题积累
问题一在使用继承时,遇到下面的问题 /home/fa/Desktop/Server/EduFish/baseserver.h:25: error: ‘void BaseServer::StartServer(BaseServer*)’ is inaccessible void StartServer(BaseServer *m_bserver);即父类无法调入子类参数,原...原创 2018-05-13 23:06:30 · 3292 阅读 · 0 评论 -
c/c++ 标准输入输出缓冲区刷新
在一次编写用QProcess接收程序运行结果的代码中,发现可执行程序使用print cout等打印运行结果,如果不加换行符就打印不出结果后来查阅网上资料得知,换行符的作用就是刷新缓冲区,因此添加缓冲区刷新代码即可或者直接关闭缓冲区.刷新方式:fflush(stdout)setbuf(stdout, NULL);setvbuf(stdout, (char *)NULL, _IONBF, ...原创 2018-05-25 10:28:03 · 3515 阅读 · 0 评论 -
数据结构 第一篇 链表
引言最大子序列和整数序列A1, A2,… An (可能有负数),求A1~An的一个子序列Ai~Aj,使得Ai到Aj的和最大注意:序列是有顺序的,不是把所有正数相加就可以的#include <iostream>using namespace std;int Data[]={-2, 11, -4, 13, -5, 2, -5, -3, 12, -9};i...原创 2018-05-27 11:08:29 · 290 阅读 · 0 评论 -
c++ 通过 this 指针获取类的使用权限
//ABase类 - 基类 class ABase{public: ABase(); void GetABaseName(){std::cout << "this is ABase" << std::endl;}};//AFunc类 - 子类#ifndef AFUNC_H#define AFUNC_H#include "abase....原创 2018-05-27 12:40:41 · 316 阅读 · 0 评论 -
linux 显式链接so库
linux加载程序变成进程的过程fork进程, 在内核创建进程相关内核项, 加载进程可执行文件查找依赖的so库, 加载映射虚拟地址初始化程序变量动态库依赖越多, 进程启动就越慢, 并且发布程序的时候, 这些链接但没有使用的so同样要一起跟着发布, 否则进程启动时候找不到对应的so导致启动失败. 一些查看依赖的命令查看依赖关系: readelf -d xx.so查看链...原创 2018-06-08 10:49:56 · 2473 阅读 · 0 评论 -
tinyxml2的使用
安装 tinyxml2下载链接说明 关键类XMLDocument:XML文档XMLElement:XML标签对(标签对之中还能嵌套许多elements,最大的一个Element就是xml文档的根节点,必须唯一)XMLDeclaration:每个XML文档开头必备的&lt;? xxxxxx ?&gt;XMLComment:作为注释出现在任何地方,它被&lt;!-- 与 --&gt;...原创 2018-04-10 00:15:32 · 1942 阅读 · 0 评论 -
数据结构(邓)-绪论
绪论绪论绪论上绪论下算法分析级数循环估算迭代与递归减而治之策略递归跟踪递推方程数组倒置实例分而治之策略二分递归递归+分治动态规划斐波拉数列二分递归线性递归迭代最长公共子序列递归绪论上Hailstone序列int Hailstone(int n){ int nLen = 1...原创 2018-08-27 23:58:44 · 883 阅读 · 0 评论 -
c++11标准特性
c++11标准特性0 简介1 候选变更2 C++核心语言的扩充3 核心语言的运行期表现强化 3.1 右值引用和 move 语义3.2 泛化的常数表示式3.3 对POD定义的修正4 核心语言建构期表现的加强 4.1 外部模板5 核心语言使用性的加强 5.1 初始化列表5.2 统一的初始化5.3 类型推导5.4 基于范围的 for 循环5.5 Lambda函数与表达式...转载 2018-05-04 23:12:16 · 1647 阅读 · 0 评论 -
c/c++ 线程池
概念原理线程池简单来说就是有一堆已经创建好的线程(最大数目一定),初始时他们都处于空闲状态,当有新的任务进来,从线程池中取出一个空闲的线程处理任务,然后当任务处理完成之后,该线程被重新放回到线程池中,供其他的任务使用,当线程池中的线程都在处理任务时,就没有空闲线程供使用,此时,若有新的任务产生,只能等待线程池中有线程结束任务空闲才能执行为什么使用线程池因为线程的创建、和清理都是需要...转载 2018-05-02 21:24:00 · 2114 阅读 · 1 评论 -
数字与字符串互转
#include <iostream>#include <sstream>using namespace std;int main(int argc, char *argv[]){ //使用C标准库里面的atoi //字符串转数字 string str = "123"; int value = std::atoi(str.c_st...原创 2018-04-02 23:53:48 · 184 阅读 · 0 评论 -
c++ 指针和引用
前言在实际代码中,经常需要获取一个或一些变量经过某个函数功能模块后的值,可以使用return返回变量或指针(将全局变量带入形参,在函数内部修改其值的方法显然是行不通的,因为形参只是拷贝,也切记勿要返回局部指针变量,因为函数退出后会销毁该指针从而造成内存错误),当然,亦可以使用指针或引用带入功能模块。在刚学习指针时,常常容易把指针*和引用&amp;混在一起,因为它们均表示地址。这里说明一下指针和...原创 2018-04-11 23:46:35 · 451 阅读 · 0 评论 -
信号与槽机制
观察者模式 信号(被观察者)-> 槽(观察者)以一个Button多个动作为例:基本代码 需要在编写Button时就将各种action的可能性列出,即代码耦合太大,编写时就要考虑引入其他对象纯虚函数 只需编写一个Button基类,通过继承得到不同action的Button类,即通过继承对象实现重用,但由于是对Button类的扩展,也不是很方便...原创 2018-04-18 09:18:24 · 407 阅读 · 0 评论 -
boost::function
概念function是一个函数对象的”容器”,概念上像是c/c++中函数指针类型的泛化。它以对象的形式封装了原始的函数指针或函数对象,能够容纳任意符合函数签名的可调用对象。因此,它可以被用于回调机制,暂时保管函数或函数对象,在之后需要的时机再调用,使回调机制拥有更多弹性。初比较#include<iostream>#include"boost/function.hpp...转载 2018-04-18 09:20:14 · 465 阅读 · 0 评论 -
c++虚函数表
类的大小对类求大小实际上即是对类的实体对象求大小,其大小大于或等于所有非静态成员大小的总和(静态成员大小不计入,因为静态成员变量不在对象中存储),超出部分的来源:指向虚函数表的指针vptr,虚函数本身不占空间内存对齐(编译器优化) 说明:虚函数、成员函数(包括静态与非静态)和静态数据成员都不占用类对象的存储空间,与构造和析构无关!对一个空类Base求sizeof的大小时...原创 2018-04-18 20:23:12 · 188 阅读 · 0 评论 -
malloc 与 new
malloc函数的实质体现在,它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表。调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块。然后,将该内存块一分为二(一块的大小与用户请求的大小相等,另一块的大小就是剩下的字节)。接下来,将分配给用户的那块内存传给用户,并将剩下的那块(如果有的话)返回到连接表上。调用free函数时,它将用户释放的内存块连接到空闲链上。f...原创 2018-04-18 20:29:25 · 150 阅读 · 0 评论 -
exit 与 return
说明exit(0)正常运行程序并退出程序;exit(1)非正常运行导致退出程序;return()返回函数,若在主函数中,则会退出函数并返回一值。return返回函数值,是关键字,exit 是一个函数。return是语言级别的,它表示了调用堆栈的返回,而exit是系统调用级别的,它表示了一个进程的结束。return是函数的退出(返回),exit是进程的退出。return是C语言提供的...原创 2018-04-18 20:39:06 · 302 阅读 · 0 评论 -
C++ 基础篇
算法算法描述伪代码:自然语言 + 程序语言 + 数学语言(只要能描述清除自己的算法思维即可)流程图 算法设计与实现构造算法解决问题按照自顶向下、逐步求精的方式进行程序语言实现递归算法理论上,任何递归都可以使用循环方法解决函数调用栈框架汉诺塔问题问题分析是否存在某种简单情形,问题很容易解决 只有一个圆盘时最简单是否可将问题分解成性质相同单规模...原创 2018-09-12 12:59:57 · 271 阅读 · 0 评论