随笔分类 -  C++

#206 反转链表
摘要:思路 1. 使用三个指针,一个是新的链表头newHead,一个是遍历原链表的cur,newHead是cur的前一个节点 2. cur不断向前,并把cur->next 指向newHead,逐个反转 3. 第三个指针,tmp,用于记录原来的遍历方向,即原cur->next 代码 阅读全文

posted @ 2017-06-18 23:25 Kinsang 阅读(231) 评论(0) 推荐(0)

#21 合并排序后的两个链表
摘要:思路 使用三个游标:cur指向合并后链表的尾部,l1,l2分别用于遍历两个链表,较小的元素增加到合并后链表。 小技巧 使用冗余的头结点可以精简地判断一下情形,其中一个链表,或两个都为空链表。 从而精简代码。 朴素代码 优化代码 阅读全文

posted @ 2017-06-18 22:08 Kinsang 阅读(149) 评论(0) 推荐(0)

【翻译】C++程序员面试题 (1)
摘要:原文题目:The Best Questions for Would-be C++ Programmers: Part 1 链接:Topcoder 论坛 原作者 zmij 翻译过程订正了原文一些笔误 引言 在招聘过程中,一个不可缺少而且十分重要的环节是“测试”。“测试”可以为面试官和候选人双方提供信息 阅读全文

posted @ 2017-06-04 22:08 Kinsang 阅读(1814) 评论(0) 推荐(0)

排错:expected unqualified-id before string constant
摘要:一个低级但是不好定位的编译错误,常见的问题是: 1. 语句的 { 括号不匹配。 2. 缺少 ; , 特别是类的定义或声明,枚举的定义。 3. 变量名或函数名使用了保留字。 阅读全文

posted @ 2017-05-19 11:09 Kinsang 阅读(9166) 评论(0) 推荐(0)

理解C++ lvalue与rvalue
摘要:一个众所周知的危险错误是,函数返回了一个局部变量的指针或引用。一旦函数栈被销毁,这个指针就成为了野指针,导致未定义行为。而左值(lvalue)和右值(rvalue)的概念,本质上,是理解“程序员可以放心使用的变量”。 空泛的讨论先到这里,先看一段会报错的代码: 这里,对foo(a)取地址会引起错误: 阅读全文

posted @ 2017-05-15 11:17 Kinsang 阅读(8366) 评论(2) 推荐(0)

导航