c++
文章平均质量分 90
ythunder
这个作者很懒,什么都没留下…
展开
-
课后题
int main(){ return 0;} 只有一个语句return结束函数。将0改为-1时,没有返回错误标志。关于注释std :: cout /* "*/" */ std :: cout /* " */ " /* " /* "*/综上,注释检测到*/然后与它最近的/*配对达到注释效果。int mon原创 2015-11-23 19:00:50 · 451 阅读 · 0 评论 -
使用libcurl库获取网页信息(C++ php)
这周要做一个小项目,需要获得学生的账户名密码后,去本校教务系统验证是否正确并且抓一个网页信息下来。 查网上时候,可以通过发送POST或GET请求来实现,然后尝试用POST先。 首先安装libcurl库 sudo yum install libcurl安装好后之后代码中添加头文件curl/curl.h就可以使用curl的函数了。当时需要访问的正方网页(222.24.62.120)需要验证码,原创 2016-08-19 20:18:30 · 4518 阅读 · 0 评论 -
C++实现简单的定时器
定时器概念: 使用定时器的目的是周期性的执行一个任务,或者是到某一时间去执行某一任务。本章用来处理断开连接超时的客户端,为此,将每个定时时间封装成定时器,并使用链表,时间轮(也是链表),堆等容器类数据结构,对定时时间统一管理。在网络编程中,我们通过socket创建套接字,然后通过setsockopt()函数设置套接口选项。函数原型setsockopt( SOCKET s, int level,原创 2016-08-03 21:36:58 · 41021 阅读 · 3 评论 -
值传递,引用传递,指针传递
原文地址: http://www.cnblogs.com/yanlingyin/archive/2011/12/07/2278961.html 值传递:形参是实参的拷贝,改变形参的值并不会影响外部实参的值。从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入,不能传出。当函数内部需要修改参数,并且不希望这个改变影响调用者时,采用值传递。指针传递:形参为指向实参地址的指针,当对原创 2016-08-21 21:39:30 · 813 阅读 · 0 评论 -
C++实现一个半同步半异步线程池
半同步半异步线程池介绍为了解决任务较多时产生的线程因不断创建销毁而消耗过多系统资源的问题,而实现了线程池技术。大概思路:维护一个线程池,里面放有一定数量的线程。当任务到来时选出一个任务“接活”,任务完成后再将其放入池中。半同步半异步的三层:同步服务层:处理来自上层的任务请求,负责将它们放到同步队列里。同步排队层:来自上层的任务请求都会加到排队层中等待被第三层处理。但必须对大小加以控制,不然如果同原创 2016-08-23 10:21:40 · 1261 阅读 · 0 评论 -
I/O复用
1.函数原型int select(int nfds, fd_set* readfds, fd_set* writefds, fd_set* exceptfds, struct timeval* timeout);参数解释nfd:指定被监听文件描述符总数readfds,writefds,exceptfds:可读可写和异常等事件对应的文件描述符集合。timeout:设置sel原创 2016-08-15 10:21:47 · 482 阅读 · 0 评论 -
JAVA讲义 (二) 流程控制与数组
进程和程序 进程是一个可执行程序的实例。进程是包含了一系列信息的文件,这些信息描述了如何在运行时创建一个进程。二进制标识:每个程序文件都包含了用于描述可执行文件格式的元信息。内核利用此信息来解释文件中的其他信息。机器语言指令:对程序算法进行编码。程序入口地址:标识开始执行时的起始指令位置。数据符号表及重定位表:描述程序中函数和表量的位置及名称。这些表格用处广泛,还包括调试和运行时的符原创 2016-09-26 14:21:31 · 1085 阅读 · 0 评论 -
muduo源码中的时间类
MutexLock私有成员: Phread_mutex_t mutex_; //互斥变量 pid_t holder; //用来表示给互斥量上锁线程的tidMutexLock() ~MutexLock() isLockByThisThread() -> bool 用来检查给互斥量上锁的是否为当前线程 assertLocked() lock() //加锁,调用assignHo原创 2016-10-25 20:24:28 · 770 阅读 · 1 评论 -
std::string , Qstring和 const char * 的互相转换
好多人都喜欢重新造一个轮子, 所以这个世界上的的轮子千奇百怪. 作为在这些轮子下面苟延残喘的洒家,往往不得不无尽的寻找两个轮子之间转换的方法. STL库, 作为标准库, 在写C++的时候理所当然的, 被各种使用. const char * 数组, 作为和C一起过来的小伙伴, 在很多场合下也会被调用. 如果脑抽居然还打算使用Qt, 那么,Qt自带的QString, 恐怕也很难有人能完全不使用. 于是乎转载 2016-12-22 13:02:11 · 7960 阅读 · 0 评论 -
泛型算法
头文件:algorithm(大多数算法),numeric(数值泛型算法).例:auto result = find(vec.cbegin(), vec.cend(), val);此例中,vec为一个int的vector,我们调用find函数通过对所给迭代器范围的遍历寻找给定数值val.若找到,它返回第一个等于给定值的元素的迭代器,若无匹配元素,希尔返回第二个参数来表示搜索失原创 2016-02-16 03:15:19 · 611 阅读 · 0 评论 -
类与友元函数
采用类的隐藏后实现了数据的隐藏和封装,类的数据成员一般定为私有成员,成员函数一般定义为共有的,以此提供类与外界的通信借口,有时需要定义一些函数,这些函数不是类的一部分(注意友原函数不是类的一部分),但又需要频繁的访问类的数据成员,这时可以将这些函数定义成友原函数。除了友原函数,还有友原类,友原的作用是提高了函数的运行效率(即类型检查和安全性检查都需要时间开销),但他破坏了类的封装性和隐藏性,使得非原创 2015-12-08 22:07:06 · 761 阅读 · 0 评论 -
数组传参,main传参(c++)
三种形式void print(const int*); void print(const int []);void print(const int [10]);形式不同,但等价,每个函数唯一的类型是 const int* 类型的。以数组作为形参的函数必须确保使用数组时不会越界。1. 使用标记指示数组长度 适用于有明显标记的数组例如结束符,检测到结束符原创 2015-11-28 12:04:20 · 899 阅读 · 0 评论 -
递归
int factorial (int val){ if (val > 1) return factorial (val - 1) * val; return 1;}需要注意传参时,val的设定不能过大,防止溢出。且传入的值必须是 val-1而非val--,如果传入val--,每次factorial的递归调用都调用val原创 2015-11-30 22:05:19 · 419 阅读 · 0 评论 -
函数重载与作用域,数组指针
别名声明的作用例: typedef int arrT[10]; using arrT = int[10]; arrT* func(int i); arrT是含有10个整数的数组的别名,因为无法返回数组,所以将返回类型定义成数组的指针,因此,func函数接受一个int实参,返回一个指向包含10个整数的数组的指针。函数重载指的是那些同名不同原创 2015-12-02 21:00:35 · 756 阅读 · 0 评论 -
默认实参,constexpr函数
我们使用string对象表示窗口内容时,希望窗口的高,宽等都有一个默认值。但同时允许这些参数自由指定与默认不同的值,此时可以定义成如下形式: typedef string :: size_type sz; string screen (sz ht = 24, sz wid = 80, char backgrnd = ' ' );引用时,如果想使用默认值,则原创 2015-12-03 21:43:09 · 639 阅读 · 0 评论 -
第8章 IO库
三个主要的头文件:iostream 用于读写流的基本类型istream, ostream, iostream;ifstream 用于读写命名文件 ifstream, ofstream, fstream;sstream 读写内存string对象的类型istringstream, ostringstream, stringtream原创 2016-01-22 16:19:36 · 659 阅读 · 0 评论 -
类及类的成员函数的定义
c++ 类的定义类定义时注意事项:~定义成员时不能使用auto,extern和register等进行修饰,也不能在定义时进行初始化。~定义时,关键词public和private出现的顺序和次序任意。~结束时的分号! #include >class 类名{ public:转载 2015-12-08 19:07:24 · 2255 阅读 · 0 评论 -
顺序容器
顺序容器提供了控制元素存储和访问顺序的能力。顺序容器vector 容器大小可变,支持随机访问,在头部或中间插入元素很慢string 仅用于保存字符,其余同上 list 双向链表,方便元素的插入,但不支持随机访问 forward_list 单向链表,其余同上 deque 双端队列,支持快速访问,头尾插入效率高 arrry 不支持添加原创 2016-02-01 00:05:48 · 708 阅读 · 0 评论 -
实现atoi函数
面试被要求实现这个函数。函数功能:将字符串转换为整数。那么实现这个一半需要考虑到哪些情况呢?符号:整数可以为负数。考虑上溢和下溢字符中的非法字符如何处理我们知道int类型计算机存储中占32bit, 首位存储符号,表示的数范围为-2147483648 - 2147483647#define MAX_INT ((1 #define MIN_INT (-(1 using原创 2017-03-29 13:33:13 · 1018 阅读 · 0 评论