
C/C++
2puT
Linux的爱好者,爱开源. Github address: https://github.com/lina-not-linus
展开
-
数据结构(栈子系统:c实现)
#include#include#define N sizeof(stacknode)//结点所占字节数 N//定义结构体typedef int datatype;typedef struct stacknode{ datatype data; struct stacknode *next;}stacknode;//定义栈顶typedef struct { stack原创 2016-04-15 17:09:21 · 5112 阅读 · 2 评论 -
数据结构(循环队列子系统:c实现)
#include//#includetypedef int datatype;//把int 改名为 datatype#define MAXLEN 10//定义MAXLEN==10#define N sizeof(loopqueue)//一个结点所占的字节数为Ntypedef struct//定义循环队列结构体结构{ datatype data[MAXLEN]; int front原创 2016-04-15 17:07:41 · 1488 阅读 · 0 评论 -
数据结构(线性表子系统:c实现)
#include#include//因为使用malloc动态空间#define N sizeof(node)// 结点定义typedef struct linknode{ char data; struct linknode * next;}node,*linklist;node *head; // 定义一个全局头指针//建表并且输入内容,结束标记位‘#原创 2016-04-15 16:09:27 · 3743 阅读 · 0 评论 -
维吉尼亚密码加解密(no 文件加解密)
#include#includevoid Encrypt(char P[],char K[],char a[]);//加密函数 void Decode(char C[],char K[],char a[]);//解密函数int main(){ int n; char P[100], C[100], K[100], a[26]={'a','b','c','d','e',原创 2016-04-15 16:05:09 · 2761 阅读 · 0 评论 -
数据结构(二叉树子系统:c语言实现)
#include#include#define datatype char#define M 50#define MAXLEN 50int num=0,counter1=0,counter2=0;typedef struct node //定义一个二叉链表结构{ datatype data;原创 2016-04-15 17:15:41 · 3299 阅读 · 1 评论 -
vector有reserve何resize,二者的不同?
vector有reserve何resize,二者何为不同?vector 的reserve增加了vector的capacity,但是它的size没有改变!而resize改变了vector的capacity同时也增加了它的size!原因如下:reserve是容器预留空间,但在空间内不真正创建元素对象,所以在没有添加新的对象之前,不能引用容器内的元素。加入新的元素时,要调用push_ba原创 2016-05-24 19:39:21 · 474 阅读 · 0 评论 -
C/c++语言sort函数如何使用
头文件是#include比如说数组a[5]={1,5,4,2,3};当你用sort(a,a+5)时,就把数组a从小到大排序了for(i=0;i<5;i++){ printf("%d \n",a[i]);}输出为1 2 3 4 5C语言中没有预置的sort函数。如果在C语言中,遇到有调用sort函数,就是自定义的一个函数,功能一般用于排序。一、可以编写自己的s原创 2016-05-24 19:53:33 · 1064 阅读 · 0 评论 -
C++里面cout.width(4)是什么意思?
就是输出的字符串宽度为4,不足的会用空格补足。比方说你要输出“12”,但是在输出之前用了这句话就会输出“ 12”。看看下面的文章吧! cin与cout 一:标准输入函数cin 不知道说它是个函数对还是不对,它是代表标准的输入设备--键盘。他是属于流的,他的用法和流的用法是一样的。也就是:cin>>变量; 小小的说明一下,输入多个变量可以写在一行,如:cin>>x>>y>>z; 这样写不原创 2016-05-24 21:25:35 · 8396 阅读 · 0 评论 -
#include <unistd.h> 头文件作用
1.unistd.h是用于linux/unix系统的调用。 #include 是POSIX标准定义的unix类系统定义符号常量的头文件,包含了许多UNIX系统服务的函数原型,例如read函数、write函数和getpid函数。2.unistd.h不是c语言的东西,是linux/unix的系统调用,包含了许多 U N I X系统服务的函数原型,例如 r e a d, w r i t e和g原创 2016-05-26 20:21:52 · 3127 阅读 · 0 评论 -
#include<sys/types.h>头文件作用
#include表示在gcc标准路径中的sys目录下查找types.h头文件;也有未写sys,因在绝对路径下。原创 2016-05-26 20:26:05 · 3222 阅读 · 0 评论 -
如何理解:int main(int argc, char** argv)
main 前面的 int 则说明main函数返回值是整形,一般是正常退出返回0,异常则是-1.参数 argc 则是表示 argv 的个数.argv 则是命令行参数. 这个参数是通过命令提示符窗(Linux 称为终端)口运行程序,以空格区分参数格式带入的。例如编译java文件时:javac Test.java (这里的 javac 就是程序,argc = 1, argv[0原创 2016-05-26 20:40:51 · 524 阅读 · 0 评论 -
exec()函数
char *argv[] 是使用dos调用程序是输入的命令,是一个二级char型指针;如:程序名为test,(当然要首先进入test.exe所在目录)输入为test str1 str2(回车)的话,str[0]就为:test(字符串);str[1]:str1;str[2]:str2;有的程序有时候在程序中要使用到这些参数。就像dos指令ping后面要加ip一样,ping就是一个程序,而后面ip就原创 2016-05-26 21:06:08 · 429 阅读 · 0 评论 -
exit()函数
在main函数中我们通常使用return (0);这样的方式返回一个值。但这是限定在非void情况下的也就是void main()这样的形式。exit()通常是用在子程序中用来终结程序用的,使用后程序自动结束跳会操作系统。但在如果把exit用在main内的时候无论main是否定义成void返回的值都是有效的,并且exit不需要考虑#include #inclu原创 2016-05-26 21:19:22 · 543 阅读 · 0 评论 -
linux 中 kill() 与 signal() 函数
linux 中 kill() 与 signal() 函数执行结果如下: 我想问,为什么主进程中kill()函数执行成功,但是子进程却没有执行stop()函数?不是已经设置了signal(SIGUSR1, stop);了么虽然子进程将父进程的函数重新拷贝了一份,子进程和父进程共享同一段内存空间,但不能被共享。可以通过共享内存解决这个问题。使用这个函数void* mmap(原创 2016-05-27 10:41:50 · 1135 阅读 · 0 评论 -
while(pid1 = fork()== -1);直接分号,循环语句为空
这个一般是在多线程当中用的。比如说线程A 在执行一系列操作之后对变量进行修改。线程B 需要确定在执行下面的句子时某一变量是否已经满足了要求比如说一个程序有两个线程,全局变量 bool flag = false;线程A的代码如下:{ 。。。//执行了一堆代码,可以将flag设置为true了 flag = true;}线程B的代原创 2016-05-27 11:52:16 · 2993 阅读 · 0 评论 -
lockf()函数
lockf()函数允许将文件区域用作信号量(监视锁),或用于控制对锁定进程的访问(强制模式记录锁定)。试图访问已锁定资源的其他进程将返回错误或进入休眠状态,直到资源解除锁定为止。当关闭文件时,将释放进程的所有锁定,即使进程仍然有打开的文件。当进程终止时,将释放进程保留的所有锁定。头文件#include 函数:int lockf(int fd, int cmd, off_t原创 2016-05-27 16:57:30 · 5824 阅读 · 0 评论 -
lock(1,1,0)与lockf(1,0,0)
lockf(1,1,0)是锁定屏幕输出,不让其他进程可以输出到屏幕,lockf(1,0,0)则是解锁.lockf(fd,1,0)是给fd文件上锁lockf(fd,0,0)是解锁配合使用,实现进程的互斥原创 2016-05-27 17:16:58 · 4855 阅读 · 2 评论 -
pause()函数
只有EINTR 有信号到达中断此函数的执行。头文件:#include 定义函数:int pause(void);函数说明:pause()会令目前的进程暂停(进入睡眠状态), 直到被信号(signal)所中断.返回值:只返回-1.pause - 等待信号内容简介#include int pause(void);描述pause() 库函数使调用进原创 2016-05-27 19:00:46 · 23761 阅读 · 1 评论 -
操作系统:进程的软中断通信实验
#include#include#include#include#include#includeint wait_flag;void stop(); int main(){ int pid1,pid2; signal(2,stop); pause(); while((pid1 = fork())== -1); if(pid1 > 0) { while((pi原创 2016-05-27 20:45:13 · 7782 阅读 · 2 评论 -
操作系统:进程的管道通信实验
#include#include#include#include#includeint pid1,pid2;int main(){ int fd[2]; char outpipe[100],inpipe[100]; while((pid1 = fork()) == -1); if(pid1 == 0) { lockf(fd[1], 1, 0); sprintf(o原创 2016-05-27 20:46:27 · 4665 阅读 · 0 评论 -
C++/C语言函数:isalpha()函数
语法: #include int isalpha( int ch ); 功能:如果参数是字母字符,函数返回非零值,否则返回零值。 char c; scanf( "%c", &c ); if( isalpha(c) ) printf( "You entered a letter of the alphabet\n" );原创 2016-05-31 19:26:02 · 1975 阅读 · 0 评论 -
数据类型有两层意思
1.规定数据的长度;2.规定在数据上能进行什么操作。例: int类型,长度为32位,能进行+ - * / % 操作。bool类型,长度为8位,只能进行异或操作。 char类型,长度为8位,能进行+ - * / %和字符操作。c/c++的编译器中有一个变量表,表的关键字段有(数据类型,变量名,首地址,值),每声明一个变量,就把这个变量的相关信息填进表中。原创 2016-05-31 19:53:39 · 410 阅读 · 0 评论 -
C++标准库,标准程序库,标准模板库之间是什么关系(重要!!!)
C++强大的功能来源于其丰富的类库及库函数资源。C++标准库的内容总共在50个标准头文件中定义。在C++开发中,要尽可能地利用标准库完成。这样做的直接好处有: (1)成本:已经作为标准提供,何苦再花费时间、人力重新开发呢; (2)质量:标准库的都是经过严格测试的,正确性有保证; (3)效率:关于人的效率已经体现在成本中了,关于代码的执行效率要相信实现标准库的大牛们原创 2016-06-06 20:44:39 · 1934 阅读 · 0 评论 -
c++ utility头文件
utility头文件定义重载的关系运算符,简化关系运算符的写入,他还定义了pair类型,该类型是一种模板类型,可以存储一对值。这些功能在库的其他地方使用。原创 2016-06-07 13:26:50 · 7017 阅读 · 0 评论 -
C++笔试题目大全(笔试宝典)(不断完善中)
1.new 、 delete 、 malloc 、 free 关系 delete 会调用对象的析构函数 , 和 new 对应 free 只会释放内存, new 调用构造函数。 malloc 与 free 是 C++/C 语言的标准库函数, new/delete 是 C++ 的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用 maloc/free 无法满足动态对象的转载 2016-06-07 13:29:37 · 35726 阅读 · 3 评论 -
问题:c++中0,‘\0’,‘0’,"0"有什么区别
今天忽然蒙了,恍然。0就代表阿拉伯数字0‘\0'是转义字符,代表空字符,一般在字符串结尾作为字符串结束标志’0‘代表字符’0‘,即ASCii码值为48对应的字符“0”代表字符串“0”,即这个字符串里只包含一个字符’0‘(当然字符串结尾默认再加一个’\0')原创 2016-05-22 12:43:26 · 2973 阅读 · 0 评论 -
C++operator用法.
1. operator 用于类型转换函数:类型转换函数的特征:1) 型转换函数定义在源类中;2) 须由 operator 修饰,函数名称是目标类型名或目标类名;3) 函数没有参数,没有返回值,但是有return语句,在return语句中返回目标类型数据或调用目标类的构造函数。类型转换函数主要有两类:1) 对象向基本数据类型转换:对象向不同类的对象的转换:例程原创 2016-06-04 10:59:18 · 516 阅读 · 0 评论 -
inline在C++中做什么的?
1.inline 说明这个函数是内联的,在编译过程中内联函数会直接被源代码替换,提高执行效率 如果类中的某个函数会被调用很多次或者放在循环中,那么建议将这个函数声明为内联,可以提高程序的运行效率2.inline内联函数目的是为了解决程序中函数调用的效率问题。一般函数进行调用时,要将程序的执行权转到被调用的函数中,然后再返回到调用它的函数中;而内联函数在进行调用时,是将调用表达式用内联函数体来替原创 2016-06-04 11:06:35 · 455 阅读 · 0 评论 -
c++中static_cast是干嘛的啊?
static_cast在C++中用于将表达式的值转换为指定的类型,但没有运行时类型检查来保证转换的安全性。主要有以下用法:(1)用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。(2)用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。(3)把空指针转换成目标类型的空指针。(4)把任何类型的表达式转换原创 2016-06-04 11:22:11 · 857 阅读 · 0 评论 -
c++ 中求反正切的函数atan和atan2的差别?
atan2返回给定的 X 及 Y 坐标值的反正切值。反正切的角度值等于 X 轴与通过原点和给定坐标点 (Y坐标, X坐标) 的直线之间的夹角。结果以弧度表示并介于 -pi 到 pi 之间(不包括 -pi)。 atan2(a, b) 与 atan(a/b)稍有不同,atan2(a,b)的取值范围介于 -pi 到 pi 之间(不包括 -pi), 而atan(a/b)的取值范围介于-pi原创 2016-06-04 16:20:16 · 13668 阅读 · 0 评论 -
erase()函数操作
erase()函数的功能是用来删除容器中的元素。函数原型:iterator erase(iterator where);iterator erase(iterator first,iterator last);basic_string& erase(size_type p0=0,size_type n=np);删除某个容器里的某个元素:c.erase(T);链表容器以lis原创 2016-05-22 18:51:12 · 446 阅读 · 0 评论 -
【STL】back_inserter与back_insert_iterator
back_inserter一个成员函数,返回值是back_insert_iterator, 本质上是push_back进行操作的, 返回值back_insert_iterator, 并实现其自增. std::vector firstvector, secondvector; for (int i=1; i<=5; i++) { firstve原创 2016-05-22 19:50:05 · 1196 阅读 · 0 评论 -
C++ STL 之 lower_bound and upper_bound
函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置函数upper_bound()返回的在前闭后开区间查找的关键字的上界,返回大于val的第一个元素位置,如一个数组number序列1,2,2,4.upper_bound(2)后,返回的位置是3(下标)也就是4所在的位置,同样,如果插原创 2016-06-10 10:00:50 · 317 阅读 · 0 评论 -
c++中头文件iomanip是什么?
iomanip.h是I/O流控制头文件,就像C里面的格式化输出一样. 在新版本的c++中头文件已经用iomanip取代了iomanip.h。 以下是一些常用的函数: dec 置基数为10 相当于"%d" hex 置基数为16 相当于"%X" oct 置基数为8 相当于"%o" setfill(c) 设填充字符为c setprecision(n) 设显示小数原创 2016-06-04 21:33:53 · 9252 阅读 · 0 评论 -
ostream头文件
istream是一个类,它定义了一个名为cin的对象。ostream也是一个类,它定义了一个名为cout的对象。istream 和 ostream一般情况下是不允许用的,你只能用它们所定义的对象,即cin和cout.cin与cout是对象,istream与ostream是类,对象是类的实例化.cout和cin仅仅是单纯的交互式输入输出,即显示出来和要求输入istream和o原创 2016-06-05 08:59:57 · 6926 阅读 · 0 评论 -
c++中algorithm头文件
包含了stl中的许多泛型算法可以调用一些函数,如: int count(I being, I end,T x) 使用非自己定义的泛型算法, 则要包含该头文件,里面定义了一些泛型算法,比如说排序之类的STL的算法部分,里边定义了各种算法,比如sort之类的。加上algorithm就可以使用stl库里的各种算法了。1)循环 对序列原创 2016-06-05 09:05:34 · 2708 阅读 · 0 评论 -
c++中cstdlib头文件
简单的说就是:C语言头文件stdlib.h在C++下的头文件是cstdlib Defines the macros traditionally defined in the Standard C library header stdlib.h>. c++ 中定义这个宏就相当于在C程序中定义标准C库的头文件stdlib.h>.宏定义:#if #include name原创 2016-06-05 09:15:22 · 5819 阅读 · 0 评论 -
toupper()函数
原型:int toupper(int c); 用法:#include 功能:将字符c转换为大写英文字母 说明:如果c为小写英文字母,则返回对应的大写字母;否则返回原来的值。原创 2016-06-05 10:29:26 · 4450 阅读 · 0 评论 -
C++中string中的erase函数怎么使用
erase函数的原型如下:(1)string& erase ( size_t pos = 0, size_t n = npos );(2)iterator erase ( iterator position );(3)iterator erase ( iterator first, iterator last );也就是说有三种用法:(1)erase(pos,n); 删除从po原创 2016-06-10 15:04:41 · 829 阅读 · 0 评论 -
C++中的STL中map用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的。 下面举例转载 2016-05-23 18:53:47 · 2735 阅读 · 1 评论