Not Only Algorithm,不仅仅是算法,关注数学、算法、数据结构、程序员笔试面试以及一切涉及计算机编程之美的内容 。。
你的位置:NoAlGo博客 »  C++标签

C++类型转换

类型转换可以将一种类型的数据转化为另一种类型的数据以满足精度或者其他方面的要求,是程序设计过程中经常遇到的问题。
C++在C语言的类型转换基础上添加了很多新的特性,可以更清晰地表明程序员的意图,以及进行更安全的转换,需要根据不同的场景适当地选择使用。本文主要介绍C和C++中关于类型转换的相关内容。这里主要关心显示的强制类型转化,隐式类型转换由编译程序按照一定规则自动完成,而不需人为干预,较危险的转换通常伴有警告提醒,唤起程序员的注意。

继续阅读»

二分查找

二分查找是一种经典的算法,是每个程序员的入门内容之一,但是根据《编程珠玑》上面介绍,90%的程序员写的二分查找的程序中有bug,并且他并不认为没有bug的代码就是正确的。
可见二分查找是比较考验程序员的编码基本功的。那么如何查找数组中一个元素是否存在并且如何找出其第一次或最后一次出现的位置呢?本文接下来将对这个问题进行仔细分析并提供相应的代码。

继续阅读»

快速排序的实现与应用

快速排序(Quick Sort)是一种非常经典高效的排序算法,采用了基于比较的递归分治策略,平均情况下复杂度为O(nlogn),但最坏情况会退化到O(n^2)。
在笔试面试过程中经常会有关于快速排序的问题,甚至要求面试者当场手写代码,本文将简单介绍快排原理并提供具体的代码实现,以及其在求第n小的数中的经典应用。

继续阅读»

C++单链表面试问题(2)

链表是程序设计的基本数据结构,也是程序员笔试面试中经常出现的问题。虽然链表在实际中应用不是太广泛,但是它在一些细节的处理上能够很好地体现出一个程序员的编程技巧和思维能力。
这里总结了一些面试中常见的单链表内容,具体分为两个部分,本文主要介绍单链表的综合使用问题。

继续阅读»

C++单链表面试问题(1)

链表是程序设计的基本数据结构,也是程序员笔试面试中经常出现的问题。虽然链表在实际中应用不是太广泛,但是它在一些细节的处理上能够很好地体现出一个程序员的编程技巧和思维能力。
这里总结了一些面试中常见的单链表内容,具体分为两个部分,本文主要介绍单链表的基本使用方法。

继续阅读»

C++中String类的实现

String是C++中的重要类型,程序员在C++面试中经常会遇到关于String的细节问题,甚至要求当场实现这个类。只是由于时间关系,可能只要求实现构造函数、析构函数、拷贝构造函数等关键部分。
String的实现涉及很多C++的基础知识、内存控制及异常处理等问题,仔细研究起来非常复杂,本文主要做一个简单的总结和归纳。

继续阅读»

C++ sizeof的内存计算(2)

内存控制是程序设计过程中非常关键的一环,C/C++中使用sizeof计算数据占用的内存大小是一个常见的手段,但是这个问题涉及到很多基础的编程细节,能够很好地反映一个程序员的基本功,成为了笔试面试常见的问题之一。
这里总结了一些常见的问题,鉴于篇幅问题,分成两部分进行,这里主要介绍稍微进阶的第二部分。

继续阅读»

C++ sizeof的内存计算(1)

内存控制是程序设计过程中非常关键的一环,C/C++中使用sizeof计算数据占用的内存大小是一个常见的手段,但是这个问题涉及到很多基础的编程细节,能够很好地反映一个程序员的基本功,成为了笔试面试常见的问题之一。
这里总结了一些常见的问题,鉴于篇幅问题,分成两部分进行,这里主要介绍比较基础的第一部分。

继续阅读»

我的博客

NoAlGo头像编程这件小事牵扯到太多的知识,很容易知其然而不知其所以然,但真正了不起的程序员对自己程序的每一个字节都了如指掌,要立足基础理论,努力提升自我的专业修养。

站内搜索

最新评论