![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
fight_2013
这个作者很懒,什么都没留下…
展开
-
C++ 笔试
1.求下面函数的返回值( 微软)int func(x) { int countx =0;while(x) { countx ++; x = x&(x-1);} return countx;} 假定x = 9999。 答案:8思路:将x转化为2进制,看含有的1的个数。 2. 什么是“引用”?申明和使用“引用”要注原创 2013-04-25 09:40:08 · 155 阅读 · 0 评论 -
线程同步-2
互斥量:#include #include #include #include #include #include void *thread_function(void *arg);pthread_mutex_t work_mutex;#define WORK_SIZE 1024char work_area[WORK_SIZE];int time_to_exit = 0原创 2013-07-16 16:05:37 · 260 阅读 · 0 评论 -
线程同步
线程同步的两种方法:1. 信号量2. 互斥量信号量:#include #include #include #include #include #include void *thread_function(void *arg);sem_t bin_sem;#define WORK_SIZE 1024char work_area[WORK_SIZE];int原创 2013-07-16 16:00:48 · 238 阅读 · 0 评论 -
pthread
#include #include #include #include #include void *thread_function(void *arg);char message[] = "Hello world!\n";int main() { int res; pthread_t a_thread; void *thread_result; res = pthr原创 2013-07-16 14:12:55 · 283 阅读 · 0 评论 -
malloc new
一:new delete 是运算符,malloc,free是函数malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编原创 2013-07-08 11:44:54 · 148 阅读 · 0 评论 -
undefined reference to `std::cout'等错误
1)gcc和g++都是GNU(组织)的一个编译器。 2)后缀名为.c的程序和.cpp的程序g++都会当成是c++的源程序来处理。而gcc不然,gcc会把.c的程序处理成c程序。3)对于.cpp的程序,编译可以用gcc/g++,而链接可以用g++或者gcc -lstdc++。原创 2013-06-03 10:15:28 · 274 阅读 · 0 评论 -
JNI编程
JNI介绍Java 本机接口(Java Native Interface (JNI))是一个本机编程接口,它是 Java 软件开发工具箱(Java SoftwareDevelopment Kit (SDK))的一部分。JNI允许 Java 代码使用以其它语言(譬如 C 和 C++)编写的代码和代码库。Invocation API(JNI 的一部分)可以用来将 Java 虚拟机(JVM)嵌入原创 2013-05-24 13:40:56 · 186 阅读 · 0 评论 -
管道
管道分为无名管道和有名管道,其中无名管道不属于任何文件系统,只存在于内存中,它是无名无形的,但是可以把它看作一种特殊的文件,通过使用普通文件的read(),write()函数对管道进行操作, 有名管道是有名有形的,为了使用这种管道,LINUX中设立了一个专门的特殊文件系统--管道文件,它存在于文件系统中,任何进程可以在任何时候通过有名管道的路径和文件名来访问管道。但是在磁盘上的只是一个节点,而文件原创 2013-05-22 13:41:54 · 168 阅读 · 0 评论 -
C++ Primer Vector
vector 是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。和 string 对象一样,标准库将负责管理与存储元素相关的内存。我们把vector 称为容器,是因为它可以包含其他对象。一个容器中的所有对象都必须是同一种类型的。vector 是一个类模板(class template)。使用模板可以编写一个类定义或函数定义,而用于多个不同的数据类型。因此,我们可以定义保存st原创 2013-05-03 16:24:10 · 189 阅读 · 0 评论 -
C++ Primer String
string类型支持长度可变的字符串。引用头文件:#include using std::string;几种初始化string对象的方式:1. 默认构造函数s1为空串string s1;2. 将s2初始化为s1的一个副本string s2(s1);3. 将s3初始化为一个字符串字面值的副本string s3("value");原创 2013-05-03 16:02:10 · 161 阅读 · 0 评论 -
sizeof struct
字节对齐的细节和编译器实现相关,但一般而言,满足三个准则:1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除;2) 结构体每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节(internal adding);3) 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节(tr原创 2013-04-28 09:38:18 · 156 阅读 · 0 评论 -
堆和栈的区别
一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,原创 2013-04-28 16:23:33 · 123 阅读 · 0 评论 -
约瑟夫环
bool checknum(int n){ if(0 == (n % 7)) return 1; while(n > 0) { if(7 == (n % 10)) return 1; n /= 10; } return 0;}#if 0int main(){ int i; bool flag = false; int j = 0; int pos =原创 2013-04-26 13:57:28 · 187 阅读 · 0 评论 -
typedef 函数指针
进入正文: 代码简化, 促进跨平台开发的目的. typedef 行为有点像 #define 宏,用其实际类型替代同义字。 不同点:typedef 在编译时被解释,因此让编译器来应付超越预处理器能力的文本替换。用法一:typedef int (*MYFUN)(int, int); 这种用法一般用在给函数定义别名的时候上面的例子定义MYFUN 是一个函数原创 2013-04-28 10:51:10 · 140 阅读 · 0 评论 -
杨辉三角
int num(int i, int j){ if((j==1)||(j==i+1)) return 1; return num(i-1,j-1)+num(i-1,j);}int main (){ int count = 6; int i, j, k, res; for(i = 0; i <= count; i++) { for(j = 0; j < 24 - 2原创 2013-04-27 15:01:41 · 162 阅读 · 0 评论 -
C++ 练习
1.绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆 4.歌星大奖赛 5.求最大数 6.高次方数的尾数 7.阶乘尾数零的个数 8.借书方案知多少 9.杨辉三角形 10.数制转换 11.打鱼还是晒网 12.抓交通肇事犯 13.该存多少钱 14.怎样存钱利最大 15.捕鱼和分鱼 16.出售金鱼 17.平分七筐鱼 18.有限5位数原创 2013-04-26 11:46:11 · 3192 阅读 · 0 评论 -
undefined reference to `clock_gettime' 链接错误问题
编译程序遇到的问题:在编辑命令加上 -lrt 重新编辑原创 2013-04-18 10:50:25 · 190 阅读 · 0 评论 -
字符串长度问题 strlen与sizeof
char *str = "abc";strlen(str) = 3sizeof(str) = 4strlen没有计算'\0'原创 2013-04-17 21:08:07 · 215 阅读 · 0 评论 -
求大数阶数
#include #define N 10000int main(){ static int r[N]={1}; int i,j; int k=0,l=0; for(i=1;i<=50;i++) { for(j=0;j<=l;j++) { r[j]=r[j]*i+k; k=r[j]/10000; r[j]=r[j]%10000;原创 2013-08-15 22:29:45 · 301 阅读 · 0 评论