C/C++
文章平均质量分 60
MagiSu
黑社会大哥的殿后小弟
展开
-
LeetCode题解: Number Complement
Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation.Note:The given integer is guaranteed to fit within the range原创 2017-02-04 17:21:06 · 550 阅读 · 0 评论 -
LeetCode题解:Teemo Attacking
In LLP world, there is a hero called Teemo and his attacking can make his enemy Ashe be in poisoned condition. Now, given the Teemo's attacking ascending time series towards Ashe and the poisoning tim原创 2017-02-04 15:59:23 · 458 阅读 · 0 评论 -
Levenshtein Edit distance
似乎在LeetCode里面也有,不过这里是为了解决另外的问题而做的。假设原创 2014-10-13 06:36:37 · 994 阅读 · 0 评论 -
C++语言的表达式模板:表达式模板的入门性介绍
时至今日,模板的使用已经远远超过C++模板的发明者所预期的范畴。模板的使用已经涵盖 了泛型编程,编译时求值,表达式模板库,模板元编程,产生式编程(generative programming)等诸多领域。在这篇文章中,我们仅限于探讨一些表达式模板的编程知识, 侧重于编写表达式模板程序库这个方面。翻译 2013-10-23 07:16:32 · 12176 阅读 · 5 评论 -
Inside C++ Object Model阅读笔记:Chapter 3 数据语义学
Chapter 3 数据语义学对于一个空类,编译器将插入一个char成员,因而类生成的对象在内存中的位置将不同。对于虚基类,需要一个指针指向基类位置或者相应的对象内存分布表。对纯虚接口类,因为在OO中起到重要作用,所以有编译器会支持不消耗内存的纯虚基类。虚基类在子类中只出现一次,在子类的对象中,虚基类的对象只有一个实例。编译器可能因为内存对齐原因来调节类的大小。每个对象的大小都应当等于它所包含所有原创 2008-05-30 19:19:00 · 1087 阅读 · 0 评论 -
Inside the C++ Object Model阅读笔记:Chapter 2
Chapter 2 构造函数语义学2.1 缺省构造函数语义学一个没有缺省构造函数的类如果有成员变量,这个变量包含一个标准构造函数,则编译器会为它生成构造函数。这个构造函数将调用有标准构造函数变量的构造函数,而无视那些不需要构造函数的成员变量。如果程序员写了标准构造函数但是没有初始化那些需要构造的成员变量,则系统自动调用这些成员变量的标准构造函数构造这些成员变量。带有标准构造函数的基类的派生类如果没原创 2008-05-25 13:56:00 · 973 阅读 · 0 评论 -
Inside the C++ Object Model阅读笔记:Chapter 1
Chapter 1 Object Lessons1.1几种对象模型:1、简单对象模型:对象是一系列插槽(slot,Qt化了?!),每个插槽插入一个成员,按照声明顺序来定义。2、表驱动模型:对象包含指向两个表的指针。成员函数表是一对插槽,每个插槽指向一个成员。数据表直接保存数据。C++使用的模型:对于每个类的虚函数,都生成了一个表(虚函数表)。每个对象都包含了指向这个虚表的指针(vptr)。指针由编原创 2008-05-12 22:13:00 · 834 阅读 · 0 评论 -
Expert C Programming阅读笔记 IX
Chapter 9 More about Arrays数组何时是指针?对数组的声明有三种类型:1、声明外部数组2、定义数组3、声明为函数参数当声明时,第一、二种情况下不能用指针重写,第三种可以使用[]或者*形式,二者均可。使用数组时,一律采用指针的方式解引用。数组被当作指针看待,三种情况:1、数组名一旦在表达式中出现,则被编译器当作一个指向数组首元素的指针。在sizeof和&的时候为例外。2、数组原创 2008-05-07 14:25:00 · 864 阅读 · 0 评论 -
LeetCode题解:Battleships in a Board
Given an 2D board, count how many battleships are in it. The battleships are represented with 'X's, empty slots are represented with '.'s. You may assume the following rules:You receive a valid原创 2017-02-04 17:47:19 · 501 阅读 · 0 评论 -
LeetCode题解:Counting Bits
Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1's in their binary representation and return them as an array.Example:For num = 5原创 2017-02-04 18:06:58 · 452 阅读 · 0 评论 -
LeetCode题解:Max Consecutive Ones
Given a binary array, find the maximum number of consecutive 1s in this array.Example 1:Input: [1,1,0,1,1,1]Output: 3Explanation: The first two digits or the last three digits are consecutiv原创 2017-01-20 16:17:07 · 479 阅读 · 0 评论 -
LeetCode题解:Magical String
A magical string S consists of only '1' and '2' and obeys the following rules:The string S is magical because concatenating the number of contiguous occurrences of characters '1' and '2' generates原创 2017-01-20 16:11:56 · 762 阅读 · 0 评论 -
LeetCode题解:Reverse String
Write a function that takes a string as input and returns the string reversed.Example:Given s = "hello", return "olleh".思路:当然可以用双指针来做,不过最简单的还使用STL。题解:std::string reverseString(st原创 2017-01-17 16:37:56 · 450 阅读 · 0 评论 -
LeetCode题解:Hamming Distance
The Hamming distance between two integers is the number of positions at which the corresponding bits are different.Given two integers x and y, calculate the Hamming distance.思路:先通过异或得到原创 2017-01-17 16:33:44 · 472 阅读 · 0 评论 -
LeetCode题解:Longest Valid Parentheses
Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring.For "(()", the longest valid parentheses substring is "()",原创 2017-01-17 13:17:26 · 391 阅读 · 0 评论 -
LeetCode题解:Island Perimeter
You are given a map in form of a two-dimensional integer grid where 1 represents land and 0 represents water. Grid cells are connected horizontally/vertically (not diagonally). The grid is completel原创 2017-02-05 10:03:23 · 711 阅读 · 0 评论 -
LeetCode题解:Arithmetic Slices
A sequence of number is called arithmetic if it consists of at least three elements and if the difference between any two consecutive elements is the same.For example, these are arithmetic sequenc原创 2017-02-04 19:21:14 · 688 阅读 · 0 评论 -
LeetCode题解:FizzBuzz
Write a program that outputs the string representation of numbers from 1 to n.But for multiples of three it should output “Fizz” instead of the number and for the multiples of five output “Buzz”.原创 2017-02-04 18:13:22 · 714 阅读 · 0 评论 -
Expert C Programming阅读笔记 VIII
Chapter 8 为什么程序员无法区分万圣节和圣诞节首先是一个小笑话。万圣节是October 31,而圣诞节是December 25。而OCT 31(031)==DEC 25(25)。所以程序员无法区分万圣节和圣诞节。类型自动转换char,位域,enum,unsigned char,short,unsigned short被提升为int,而float被提升为double。指针的类型被剥离。特别注原创 2008-05-07 14:21:00 · 759 阅读 · 0 评论 -
Expert C Programming阅读笔记 VII
好长时间不写blog,一次写完Chapter 7Intel 80x86的内存模型UNIX中的“段”指二进制数据中的相关内容。Intel x86中的段是将地址空间分为64KB的块。虚拟内存虚拟内存通过页面组织,一个页面是OS维护的一小块(几个KB)的内存。一个页面可以被送到磁盘中,也可以被调出。如果程序不运行,可能内存映像被交换到磁盘中。在Solaris中,只有用户程序被交换出,核心始终在内存中。进原创 2008-05-07 14:03:00 · 837 阅读 · 0 评论 -
APUE Chapter 12笔记:Unix下线程的控制(II)
对于线程之间数据的同步锁,同样有着属性:1、mutex锁int pthread_mutexattr_init(pthread_mutexattr_t *);int pthread_mutexattr_destroy(pthread_mutexattr_t*);对锁进行初始化和破坏锁有两种属性。第一种是进程间的共享。这个不是POSIX属性,然而被Single UNIX Specification所支原创 2008-02-11 21:21:00 · 955 阅读 · 0 评论 -
APUE Chapter 12笔记:Unix下线程的控制(I)
首先是线程的属性。线程的属性是pthread_attr_t 类型的,具体的说就是typedef union{ char __size[__SIZEOF_PTHREAD_ATTR_T]; long int __align;} pthread_attr_t;一个集合,其中__SIZEOF_PTHREAD_ATTR_T的大小在我的Linux 2.6.24下是36,而sizeof(long int)=原创 2008-02-10 01:54:00 · 1076 阅读 · 1 评论 -
APUE Chapter 11笔记:UNIX下的线程(II)
/*随意转载,请注明原作者和出处。我想要找个工作,吃饭第一……*/先推荐宫村优子的Its only fairy tales,连带推荐舞-HiME,就算不看动画内容,看MM也很happy。巨喜欢舞衣MM。然后推荐AIRANNE的Komm, süsser Tod,用最欢快的歌声唱出最忧郁的内容。上次写到线程的共享同步方面的问题。线程的同步解决方法就是锁,这点用膝盖都能想出来。然而Unix并不支持数据原创 2008-02-08 00:06:00 · 1505 阅读 · 0 评论 -
APUE Chapter 11 笔记:Unix下的线程(I)
/** *任意转载,但请注明出处和原作者。听Leo说多写技术文章容易被猪头公司看中…… */开始通过APUE Chapter 11学习Unix下的多线程开发。以我的理解,线程就是一种轻量级的进程,与主进程共享内存空间,resource,文件描述符等,但是有独立的栈空间。要使用线程,必须包含POSIX的线程库,这是GNU C默认不会被连接的库,所以需要用-lpthread指明。程序中要#includ原创 2008-02-05 16:30:00 · 1328 阅读 · 0 评论 -
Expert C Programming阅读笔记VI
Chapter 6 Poetry in Motion: Runtime Data Structuresa.out的缘由a.out - assembler and link editor output formatSegmentsUNIX的Segment和x86的Segment有着不同的含义。UNIX:二进制文件中的一些相关数据在一起形成一个Segment。x86:被分成64K地址空间的内存空间。U原创 2008-04-10 18:59:00 · 826 阅读 · 0 评论 -
Expert C Programming读书笔记IV
Chapter 4 Arrays are not Pointers!下列声明extern int* p;extern int q[];有着不同的意思。前者声明了一个指向int的指针,后者定义了一个大小未定的数组,这个数组存放位置在另外的地方。、Declaration and Definition声明(Declaration)是指:指定变量的类型,用来“引用”不在本地的实际的变量定义(Defin原创 2008-04-05 20:58:00 · 809 阅读 · 0 评论 -
Expert C Programming读书笔记III
其实看了很多了,一直没有笔记。The Early Bug gets() the Internet Worm本段主要讨论了缓冲区溢出造成的安全隐患。在栈上展开数组的时候,由于C语言对数组边界的检查几乎没有,所以很可能导致栈的溢出,进而使得别有用心的人执行一些非法代码。Finger是一个例子。解决的办法是,向数组赋值的时候(特别是字符串)限制一次读入数据的长度。Sins of Omissions1、在原创 2008-04-05 18:05:00 · 797 阅读 · 0 评论 -
Expert C Programming阅读笔记V
Chapter 5 Thinking of LinkingC编译器的结构C预处理器--前端(词法和语意分析)--后端(代码生成)--优化器--汇编器--链接器静态链接和动态链接静态链接时,库文件被附着在a.out中,反之,动态链接时,在运行时map相应的库。一般应当使用动态链接(附注:系统核心应当给一个静态链接,例如linux的应急shell busybox就应当静态链接库,因为有时候根文件系原创 2008-04-06 22:23:00 · 932 阅读 · 0 评论 -
Expert C Programming阅读笔记 2
One new feature introduced with ANSI C is the convention that adjacent string literals are concatenated into one string. printf( "A second favorite childrens book " "is Thomas the tank engi原创 2008-03-18 21:28:00 · 826 阅读 · 0 评论 -
APUE Chapter 12笔记:Unix下线程的控制(III)
因为看完了最后一段之后就懒得写笔记了,现在补上来。线程的撤销(cancel) 调用pthread_cancel来停止一个线程,而线程有听话和不听话两种可能。如果线程的状态是PTHREAD_CANCEL_ENABLE,那么它在碰到APUE表12.14和12.15中的任何一个函数调用(cancel point)就会停止。如果状态是PTHREAD_CANCEL_DISABLE,那么它会无视CANCEL命原创 2008-03-11 20:29:00 · 921 阅读 · 0 评论 -
Expert C Programming阅读笔记
类型的自动转换Operands with different types get converted when you do arithmetic. Everything is converted to the type of the floatiest, longest operand, signed if possible without losing bits. The value原创 2008-03-12 21:37:00 · 1040 阅读 · 0 评论 -
LeetCode题解:Construct the Rectangle
For a web developer, it is very important to know how to design a web page's size. So, given a specific rectangular web page’s area, your job by now is to design a rectangular web page, whose length L原创 2017-01-25 16:30:47 · 456 阅读 · 0 评论