随笔分类 -  C++/C

关于C++/C的一些东东
摘要:涉及多参数传递给线程的,都需要使用结构体将参数封装后,将结构体指针传给线程 定义一个结构体 struct mypara { var para1;//参数1 var para2;//参数2 } 将这个结构体指针,作为void *形参的实际参数传递 struct mypara pstru; pthrea 阅读全文
posted @ 2016-09-13 19:17 jiu~ 阅读(19515) 评论(1) 推荐(3)
摘要:问题原因: pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a. 所以在使用pthread_create()创建线程时,需要链接该库。 1. 终端:问题解决:在编译中要加 -pthread参数 2. qt的cmake配置: 可以修改CMakeLists. 阅读全文
posted @ 2016-09-09 11:09 jiu~ 阅读(13425) 评论(0) 推荐(0)
摘要:那句话的意思是从 void* 到 int 的转换丢失精度,相信看到解释有些人就明白了, 此问题只会出现在X64位的Linux上,因为在64位的机器上指针占用8个字节,int 占用四个字节,所以才会出现这样的问题, 解决方法: (long)ptr == -1 就好了 阅读全文
posted @ 2016-09-09 11:03 jiu~ 阅读(8610) 评论(1) 推荐(1)
摘要:undefined reference to typeinfo - C++ error message There are some compiler and loader error messages that shout obviously as to their cause, but ther 阅读全文
posted @ 2016-09-09 09:25 jiu~ 阅读(1058) 评论(0) 推荐(0)
摘要:bool f (const char *s) { int s1,s2,s3,s4; if (sscanf(s, "%d.%d.%d.%d", &s1, &s2, &s3, &s4) != 4) { return false; } if ((s1 & 0xffffff00) || (s2 & 0xffffff00) || (s3 & 0xff... 阅读全文
posted @ 2016-09-07 17:38 jiu~ 阅读(1946) 评论(0) 推荐(0)
摘要:一,概述 仿函数(functor),就是使一个类的使用看上去象一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了。 有些功能的的代码,会在不同的成员函数中用到,想复用这些代码。 1)公共的函数,可以,这是一个解决方法,不过函数用到的一些变量,就可能成 阅读全文
posted @ 2016-09-07 17:36 jiu~ 阅读(543) 评论(0) 推荐(0)
摘要:1. 简单工厂模式 利用多态,建立一工厂,管理对不同逻辑类的实例化。 example: 2. 策略模式 建立纯需类,作为对外接口。 3. 单一职责原则 就一个类而言,应该仅有一个引起它变化的缘由。 4. 开放-封闭原则 可拓展、不可修改。 在我们最初编写代码时,假设变化不会发生;当变化发生时,我们就 阅读全文
posted @ 2016-08-24 17:54 jiu~ 阅读(281) 评论(0) 推荐(0)
摘要:明其理,而知其然也.先给理论。1. 初始化 != 赋值. a.初始化代表为变量分配内存. 变量在其定义处被编译器初始化(编译时). 在函数中, 函数参数初始化发生在函数调用时(运行时). b.赋值代表"擦除对象当前值, 赋予新值". 它不承担为对象分配内存的义务.2. C++中, 类成员的初始化于初 阅读全文
posted @ 2016-08-19 16:20 jiu~ 阅读(1729) 评论(0) 推荐(1)
摘要:首先回顾一下C++类型转换: C++类型转换分为:隐式类型转换和显式类型转换 第1部分. 隐式类型转换又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中, 最宽的数据类型成为目标转换类型。 2)一种类型表达式赋值给另一种类 阅读全文
posted @ 2016-07-22 23:38 jiu~ 阅读(302) 评论(0) 推荐(0)
摘要:平时没注意,当读取二进制流内容时,方才意识到这个问题。看段代码: z=66733030,即str的内存表示。 ascii码是针对字符而言的,我们平日里说的1,就是内存里的1,而非字符对应的31。当读取二进制流时,我们直接用整型变量去获取即可,根本不用画蛇添足地去转换。之前那个证书解析的代码,由于我曾 阅读全文
posted @ 2016-07-22 15:44 jiu~ 阅读(1144) 评论(0) 推荐(0)
摘要:1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的 Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支 持,包括W 阅读全文
posted @ 2016-07-21 11:25 jiu~ 阅读(837) 评论(0) 推荐(0)
摘要:需要注意的是,路径的斜杠要转义,即双斜杠,否则打开文件失败。 字符串读写函数fgets和fputs 一、 读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为: fgets(字符数组名,n,文件指针); 其中的n是一个正整数。表示从文件中读出的字符串不超过 n- 阅读全文
posted @ 2016-07-08 19:50 jiu~ 阅读(4358) 评论(0) 推荐(1)
摘要:很多情况下要求当前的程序中只有一个object。例如一个程序只有一个和数据库的连接,只有一个鼠标的object。通常我们都将构造函数的声明置于public区段,假如我们将 其放入private区段中会发生什么样的后果?这意味着什么? 当我们在程序中声明一个对象时,编译器为调用构造函数(如果有的话), 阅读全文
posted @ 2016-06-30 15:00 jiu~ 阅读(10748) 评论(2) 推荐(9)
摘要:define中的三个特殊符号:#,##,#@ #define Conn(x,y) x##y #define ToChar(x) #@x #define ToString(x) #x (1)x##y表示什么?表示x连接y,举例说: int n = Conn(123,456); /* 结果就是n=123 阅读全文
posted @ 2016-05-05 11:35 jiu~ 阅读(1423) 评论(0) 推荐(0)
摘要:在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新 的字符传过来,那么这个字符将丢失。于是,研制人员想了个办法解决这个问题,就是在 阅读全文
posted @ 2016-03-31 09:58 jiu~ 阅读(7203) 评论(0) 推荐(3)
摘要:1. Ctrl-M-O 折叠所有方法 Ctrl-M-M 折叠或展开当前方法 Ctrl-M-L 展开所有方法 2. 行编辑(复制,剪切,删除,交换) 当你在光标停留行使用快捷键Ctrl+C,X,L时,可以复制,剪切,删除整行内容。跟平时的复制,剪切,删除就是选中和没选中代码的区别而已。 如果你想交换上 阅读全文
posted @ 2016-03-30 17:53 jiu~ 阅读(739) 评论(0) 推荐(0)
摘要:这个库使用时需要注意的地方: 1.在插入数据之前,需要先调用set_empty_key()设置一个空Key,Key的值可以为任意符合类型的。但请注意之后插入的Key不能和空Key相同,否则会abort。这个空Key的目的是为了防止死循环,它需要这样一个标志来判断查找是否该结束了。 2.在使用eras 阅读全文
posted @ 2016-03-25 08:24 jiu~ 阅读(2472) 评论(0) 推荐(0)
摘要:insert 含义是: 如果key存在,则插入失败,如果key不存在,就创建这个key-value。 实例: map.insert((key, value)) 利用下标操作的含义是: 如果这个key存在,就更新value;如果key不存在,就创建这个key-value对 实例:map[key] = 阅读全文
posted @ 2016-03-23 09:53 jiu~ 阅读(3821) 评论(0) 推荐(2)
摘要:std:: lower_bound 该函数返回范围内第一个不小于(大于或等于)指定val的值。如果序列中的值都小于val,则返回last.序列应该已经有序! eg: 截图: 该函数返回范围内第一个 大于 指定val的值。如果序列中的值都小于val,则返回last.序列应该已经有序! eg: 截图: 阅读全文
posted @ 2016-03-22 16:11 jiu~ 阅读(704) 评论(0) 推荐(0)
摘要:当使用带有const的指针时其实有两种意思。一种指的是你不能修改指针本身的内容,另一种指的是你不能修改指针指向的内容。 先说指向const的指针,它的意思是指针指向的内容是不能被修改的。它有两种写法。 const int* p; (推荐) int const* p; p是一个指针,它指向的内容是co 阅读全文
posted @ 2016-03-11 20:28 jiu~ 阅读(204) 评论(0) 推荐(0)