随笔分类 -  Linux C/C++

【linux】如何将Vim打造成一个成熟的IDE
摘要:如果你稍微写过一点代码,就能知道“集成开发环境”(IDE)是多么的便利。不管是Java、C还是Python,当IDE会帮你检查语法、后台编译,或者自动导入你需要的库时,写代码就变得容易许多。另外,如果你工作在Linux上,你也会知道Vim在进行文本编辑的时候是多么的方便。所以,你可能会想从Vim中也... 阅读全文
posted @ 2014-11-20 16:02 香格里拉\(^o^)/ 阅读(1578) 评论(0) 推荐(0) 编辑
【C/C++】随机数问题
摘要:最初问题:从n个数中随机选择m个数(0s;while(signed(s.size())::iteratori=s.begin();while(i!=s.end())cout=n)return;for(inti=0;m!=0&&i<n;i++){if(BigRand()%(n-i)<m){cout<<... 阅读全文
posted @ 2014-11-11 09:34 香格里拉\(^o^)/ 阅读(1040) 评论(0) 推荐(0) 编辑
cmake 常用变量和常用环境变量查表手册---整理 .
摘要:一,cmake 变量引用的方式:前面我们已经提到了,使用${}进行变量的引用。在 IF 等语句中,是直接使用变量名而不通过${}取值二,cmake 自定义变量的方式:主要有隐式定义和显式定义两种,前面举了一个隐式定义的例子,就是 PROJECT 指令,他会隐式的定义_BINARY_DIR 和_SOURCE_DIR 两个变量。显式定义的例子我们前面也提到了,使用 SET 指令,就可以构建一个自定义变量了。比如:SET(HELLO_SRC main.SOURCE_PATHc),就 PROJECT_BINARY_DIR 可以通过${HELLO_SRC}来引用这个自定义变量了.三,cmake 常用变量 阅读全文
posted @ 2014-02-19 18:20 香格里拉\(^o^)/ 阅读(124129) 评论(2) 推荐(8) 编辑
CMAKE的使用
摘要:一、基本使用安装:下载二进制包后可直接解压使用从源码安装则执行命令:./bootstrap; make; make install——尝试执行bootstrap失败使用:cmake dir_path,生成工程文件或makefile文件二、概念out-of-sourcebuild,与in-source build相对,即将编译输出文件与源文件放到不同目录中;三、基本结构1,依赖CMakeLists.txt文件,项目主目标一个,主目录中可指定包含的子目录;2,在项目CMakeLists.txt中使用project指定项目名称,add_subdirectory添加子目录3,子目录CMakeLists 阅读全文
posted @ 2014-02-19 18:19 香格里拉\(^o^)/ 阅读(10472) 评论(2) 推荐(1) 编辑
GCC 编译使用动态链接库和静态链接库
摘要:1 库的分类根据链接时期的不同,库又有静态库和动态库之分。静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行。有别于静态库,动态库的链接是在程序执行的时候被链接的。所以,即使程序编译完,库仍须保留在系统上,以供程序运行时调用。(TODO:链接动态库时链接阶段到底做了什么)2 静态库和动态库的比较链接静态库其实从某种意义上来说也是一种粘贴复制,只不过它操作的对象是目标代码而不是源码而已。因为静态库被链接后库就直接嵌入可执行文件中了,这样就带来了两个问题。首先就是系统空间被浪费了。这是显而易见的,想象一下,如果多个程 阅读全文
posted @ 2013-02-05 15:19 香格里拉\(^o^)/ 阅读(600) 评论(0) 推荐(0) 编辑
【linux】下的mkfifo 命令 和【C语言】中的mkfifo函数
摘要:# mkfifo myfifo# pingedu.cn >> myfifo 另开一个终端:# cat myfifo看到效果了吧mkfifo 命令用途制作先进先出(FIFO)特别文件。语法mkfifo [ -m Mode ] File …描述根据指定的顺序,mkfifo 命令创建由 File 参数指定的 FIFO 特别文件。如果没有指定 -m Mode 标志,则 FIFO 文件的文件方式是通过文件方式创建所修改的包含 OR 的 S_IRUSR、S_IWUSR、S_IRGRP、S_IWGRP、S_IROTH 和 S_IWOTH 许可权的一位宽度(请参阅 umask 命令)。mkfifo 阅读全文
posted @ 2012-03-31 22:28 香格里拉\(^o^)/ 阅读(21208) 评论(0) 推荐(2) 编辑
C++如何实现哈希数据结构——map Library
摘要:C++ 的常用库http://www.cplusplus.com/reference/map Libraryhttp://www.cplusplus.com/reference/stl/map/简单用法如下: typedef pair<const Key, T> value_type;Iterators of amapcontainer point to elements of thisvalue_type. Thus, for an iterator calleditthat points to an element of amap, its key and mapped val 阅读全文
posted @ 2011-11-30 18:50 香格里拉\(^o^)/ 阅读(1508) 评论(0) 推荐(0) 编辑
C语言 大数的阶乘
摘要:求400的阶乘C/C++ code#define N 400long a[8916]={1,0},n,i,c,len; int main(void) { n=N; for ( len=1;n>1; n--) { for (c=0,i=0; i<len;i++ ) { a[i]= ( c+= a[i]*n ) % 10000; c/=10000; } ((a[i]=c)>0)?len++:0; } for( len--,printf("%d",... 阅读全文
posted @ 2011-08-24 19:03 香格里拉\(^o^)/ 阅读(3545) 评论(0) 推荐(0) 编辑
C语言 统计整数二进制表示中1的个数
摘要:这是一个很有意思的问题,也是在面试中最容易被问到的问题之一。这个问题有个正式的名字叫Hamming_weight,而且wikipedia上也提供了很好的位运算解决的方法,这个下面也会提到。解决这个问题的第一想法是一位一位的观察,判断是否为1,是则计数器加一,否则跳到下一位,于是很容易有这样的程序。?12345678910int test(int n) { int count=0; while(n != 0){ if(n%2 ==1) count++; n /= 2; } return count; }或者和其等价的位运算版本:?123456789int test(int n) { int co 阅读全文
posted @ 2011-08-24 18:40 香格里拉\(^o^)/ 阅读(11518) 评论(1) 推荐(3) 编辑
gcc和g++的区别
摘要:gcc和g++的区别 我们在编译c/c++代码的时候,有人用gcc,有人用g++,于是各种说法都来了,譬如c代码用gcc,而c++代码用g++,或者说编译用gcc,链接用g++,一时也不知哪个说法正确,如果再遇上个extern "C",分歧就更多了,这里我想作个了结,毕竟知识的目的是令人更清醒,而不是更糊涂。误区一:gcc只能编译c代码,g++只能编译c++代码两者都可以,但是请注意:1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽然c++是c的超集,但是两者对语法的要求是有区别的,例如:#includ 阅读全文
posted @ 2011-08-24 18:39 香格里拉\(^o^)/ 阅读(1015) 评论(0) 推荐(0) 编辑
c语言产生随机数的方法
摘要:在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的原形是void srand( int a)。可能大家都知道C语言中的随机函数random,可是random函数并不是ANSI C标准,所以说,random函数不能在gcc,vc等编译器下编译通过。rand()会返回一随机数值,范围在.. 阅读全文
posted @ 2011-08-24 18:38 香格里拉\(^o^)/ 阅读(80240) 评论(0) 推荐(2) 编辑
linux下C/C++,多线程pthread
摘要:·线程创建 函数原型:int pthread_create(pthread_t *restrict tidp,const pthread_attr_t *restrict attr,void *(*start_rtn)(void),void *restrict arg); 返回值:若是成功建立线程返回0,否则返回错误的编号。 形式参数:pthread_t *restrict tidp要创建的线程的线程id指针;const pthread_attr_t *restrict attr创建线程时的线程属性;void* (start_rtn)(void)返回值是void类型的指针函数;voi 阅读全文
posted @ 2011-08-11 14:11 香格里拉\(^o^)/ 阅读(43572) 评论(1) 推荐(1) 编辑
linux标准库#include <unistd.h>与windows的#include <windows.h>(C语言开发)
摘要:#include <unistd.h>符号常量是POSIX标准定义的unix类系统定义符号常量的头文件,包含了许多UNIX系统服务的函数原型,例如read函数、write函数和getpid函数unistd.h在unix中类似于window中的windows.h!#ifdef WIN32#include <windows.h>#else#include <unistd.h>#endifunistd.h含有的常量与函数:ssize_t read(int, void *, size_t);int unlink(const char *);ssize_t write 阅读全文
posted @ 2011-08-11 13:56 香格里拉\(^o^)/ 阅读(19598) 评论(0) 推荐(0) 编辑
linux和windows下,C/C++开发的延时函数,sleep函数
摘要:简介: 函数名: sleep 功 能: 执行挂起一段时间 用 法: unsigned sleep(unsigned seconds); 在VC中使用带上头文件 #include <windows.h> 在gcc编译器中,使用的头文件因gcc版本的不同而不同 linux系统需要添加的头文件 #include <unistd.h> 注意 : 在VC中Sleep中的第一个英文字符为大写的"S" 在标准C中是sleep, 不要大写.. 下面使用大写的来说明,, 具体用什么看你用什么编译器. 简单的说VC用Sleep, 别的一律使用sleep. Sleep函数 阅读全文
posted @ 2011-08-11 11:43 香格里拉\(^o^)/ 阅读(18126) 评论(0) 推荐(2) 编辑