C、C++学习笔记
文章平均质量分 63
theArcticOcean
Website: https://www.weiy.city
Wechat Subscription Account: 胡桃小院
展开
-
set四个集合操作&&红黑树初识
了解红黑树:首先说说二叉查找树。二叉查找树的重要性质:任何节点的键值一定大于其左子树中每一个节点的键值,并小于其右子树中每一个节点的键值。在极端情况下,当所有节点位于一条链上时,二叉查找树的操作时间为O(N)。沿树的左边向下走,能够找到最小值。沿着树的右边走能够找到最大值。和二叉搜索树一样,红黑树(一种特殊的二叉查找树)可以支持search,minimum,maximun,insert,d原创 2015-07-20 19:54:55 · 1025 阅读 · 0 评论 -
poj 1028 Web Navigation(模拟)
题目:http://poj.org/problem?id=1028Web NavigationTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 31299 Accepted: 14032DescriptionStandard web browse原创 2015-09-07 20:24:37 · 658 阅读 · 0 评论 -
zoj 2531 Traveller(暴力 || 二进制与gray码)
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2531TravellerTime Limit: 2 Seconds Memory Limit: 65536 KB Special Judge A traveller plans a round trip throu原创 2015-09-10 17:09:55 · 794 阅读 · 0 评论 -
multiset应用
multiset和set是集合类,set不能有重复元素,multiset可以有重复元素,均是由平衡二叉树支持的。以下来自于百度百科:平衡二叉树(Balanced Binary Tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。构造与调整方法 平衡二叉树的常用算法有红黑树、AVL、Treap等。原创 2015-08-04 15:39:33 · 703 阅读 · 0 评论 -
heap
heap:(二叉)堆是一个数组,可以被看做完全二叉树,根结点是1,lch=2*pa,rch=2*pa+1。堆常有max_heap和min_heap,前者heap[parent]>=heap[child],后者heap[parent]MAX-HEAPIFY (A, i )1 l= LEFT (i)2 r= RIGHT (i)3 if l A[i]4 large原创 2015-07-19 21:16:55 · 1040 阅读 · 0 评论 -
C++ map的简单应用
C++中的模板map可以帮助我们建立起不同数据类型之间的映射关系,这一点在某些问题的处理上极为方便和重要。熟练掌握和运用map有许多好处。下面是用map的简单例子:#include#include#include#includeusing namespace std;struct point{ int dex; int x,y;};struct strCmp { bo原创 2015-07-04 18:52:12 · 853 阅读 · 0 评论 -
杂记 (2) —— linux and C
问题自动获取IP的网卡设置怎嘛查看IPv4? 将/etc/sysconfig/network-scripts/ifcfg-eth0中的BOOTPROTO的值更改成dhcp. 然后ifdown 网卡名, ifup 网卡名.linux某一项service没有找到? 将可执行文件的路径加入PATH中。相关文件(ubuntu): /etc/environment能Ping通linux,但是不能ss原创 2016-09-08 23:11:06 · 1668 阅读 · 0 评论 -
杂记 (3) —— C and linux
问题遇到一个奇怪的现象. 在移动硬盘中自己编译c程序得到的可执行文件没有可执行属性,使用root +x也不能改变他的属性. 当我把它放入自己电脑中的硬盘后,就可以chmod +x了. 自己猜想这可能和文件系统相关.fdisk -lDevice Boot Start End Sectors Size Id Type/dev/sda1 *原创 2016-09-21 21:46:05 · 621 阅读 · 0 评论 -
【github myLocker】线程返回值,重复引用头文件,二进制文件I/O
线程返回值子线程使用pthread_exit()向调用线程返回数值,函数原型:void pthread_exit(void *retval); 调用线程使用函数pthread_join()的第二个参数void **接收返回值。函数原型:int pthread_join(pthread_t thread, void **retval); 例子: main中创建一个线程pthTextCode,在新原创 2017-08-13 22:37:53 · 664 阅读 · 0 评论 -
杂记 (7) —— windows + code
在有道云笔记markdown中插入图片的方法:将图片放在本地,右击属性,安全,对象名称。将其复制到()中即可。![image](C:\Users\win7\Desktop\link.PNG)注意,路径中不要有空格。static declaration of ‘***’ follows non-static declaration我们需要在调用静态函数之前有相应的声明 比如: 下面代码main()原创 2017-01-10 11:10:51 · 561 阅读 · 0 评论 -
基本数据的范围
翻到了自己曾经做的笔记,觉得基础但是重要,记录下来:short int 的取值范围是-32768~32767.unsigned int: 0~4294967295 int: 2147483648~2147483647 --> 10位数(简单认为2后面9个0) 足以表示2^31-1unsigned long 0~4294967295 --> 2^32-1lon原创 2016-01-25 14:02:47 · 599 阅读 · 0 评论 -
ANSI C (6) —— 指针、断言、信号、跳转
指针指针的声明下面的三条语句是等价的,但是我们常常使用的是第一种形式int *p,同时我们注意,他们是在初始化p而不是*p。#include <stdio.h>#include <stdlib.h>int main(){ int a=12; int *p1=&a; int* p2=&a; int * p3=&a; printf("p1: %p %d\原创 2016-12-10 20:29:37 · 1173 阅读 · 0 评论 -
ANSI C (5) —— 结构、联合、位字段、枚举
结构结构体在声明的时候并没有分配任何的内存资源,只有定义了结构体变量才会产生相应的内存分配。 typedef和#define的区别#define仅仅是做简单的替换,而typedef是给某种数据类型创建一个替代名。 看这样的例子:#include <stdio.h>#define charP char*int main(){ charP s1="I love you.", s2="he原创 2016-12-09 11:34:44 · 889 阅读 · 0 评论 -
杂记 (4) —— linux and coding
记录linux文本界面下的计算器,bc. 可进行的操作:+ 加法 - 減法 ###乘法 / 除法 ^ 指数 % 余数 启动: bc 离开: quitawk编程,非法引用数组$ ./split.shawk: line 5: illegal reference to array elements$ cat split.sh #!/bin/bashawk 'BEGIN{原创 2016-10-22 21:31:27 · 878 阅读 · 0 评论 -
C++ primer (3) —— 多态
类类的访问修饰符 只有类和友元函数可以访问私有成员 保护成员比私有成员的开放性要更大一点,可以被子类访问 友元函数定义在类的外部,可以访问类的私有成员内联函数 如果一个函数是内联的,那么在编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方。 在类定义中的定义的函数都是内联函数。this指针 this指针是成员函数的隐含参数,友元不是类的成员函数,所以友元函数没有this指针。类原创 2016-12-05 14:48:23 · 695 阅读 · 0 评论 -
ANSI C (4) —— 存储类别和类型限定
register寄存器(register)变量的被访问速率远远高于内存的被访问速率,所以编译优化常常这样做:将循环控制变量和使用频繁的变量安排在CPU的寄存器中。通常,仅仅在块内声明寄存器变量。取地址符&不能用于寄存器变量。 比如下面的代码将会发生错误: error: address of register variable ‘i’ requested register int i;原创 2016-12-06 18:26:35 · 936 阅读 · 0 评论 -
ANSI C (1) —— 基础
常量字符指针和字符指针的传参问题EOF预处理器强大的跳跃者goto指针和数组不是一样的字节计数器sizeof计算参数的顺序原创 2016-06-27 08:51:56 · 943 阅读 · 0 评论 -
ANSI C (2) —— str系列函数
数组和指针数组名是一个指针常量,数组定义时设置成数组第一个单元的地址,从此以后就不能修改,int a[3]; a=… 是错误的。但是修改数组的单元是合法的,a[1]=…。 指针变量可以进行赋值操作。#include <stdio.h>int main(){ char *p=NULL; char s[10]="123456789"; p=s; printf("%s\原创 2016-07-20 20:17:05 · 934 阅读 · 0 评论 -
ANSI C (3) —— 常用系统函数
字符测试函数 function effect isalnum 检测字符是否为英文或数字 isalpha 检测字符是否为英文 isascii 检测字符是否为ASCII码字符 iscntrl 检测字符是否为ASCII码控制字符 isdigit 检测字符是否为阿拉伯数字 islower 检测字符是否为小写字符 isupper 检测字符是否为大写原创 2016-11-05 07:55:04 · 468 阅读 · 0 评论 -
C++ primer (1) —— 基础
一年前的部分学习笔记,现在整理并复习它们。三 C++数据类型十进制,8进制,16进制——20;024;0x14. 迭代:多次循环,反复执行。 缺省:default,系统默认状态。c可打印字符基本的 ASCII 字符集共有 128 个字符,其中有 96 个可打印字符,包括常用的字母、数字、标点符号。(另外还有 32 个控制字符)Unicode(统一码、万国码、单一码):是一种在计算机上使用的字符编原创 2016-07-08 19:20:48 · 1900 阅读 · 0 评论 -
C++ primer (2) —— 基础
一年前的部分学习笔记,现在整理并复习它们。八 域和生命期名字空间域是不包含在函数声明,函数定义或者类定义内的程序文本部分。 程序员也可以利用名字空间定义namespace definition 来定义用户声明的user-declared 的名字空间。它们被嵌套在全局域内。局部域内的名字解析是这样进行的: 首先查找使用该名字的域, 如果找到一个声明则该名字被解析. 如果没有找到则查找包含该域的域,原创 2016-07-08 20:15:54 · 2350 阅读 · 0 评论