C/C++ Learning

您正在查看: C/C++ 分类下的文章

linux内核list.h之链表list

1、数据结构struct list_head { struct list_head *next, *prev; }; 这里用一个list_head类型的结构体,它包含两个指向本身的指针prev和next,从而具备了双向链表的功能。与一般双向链表不同的是,该结构没有数据域。而它一般也是作为我们实际运用的双向链表中一个数据成员。例如:struct my_struct { stru...阅读全文

8大经典排序算法-插入排序-直接插入排序(3)

插入类排序插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。插入排序一般意义上有两种:直接插入排序和希尔排序,下面分别介绍。直接插入排序基本思想:最基本的操作是将第i个记录插入到前面i-1个以排好序列的记录中。具体过程是:将第i个记录的关键字K依次与其前面的i-1个已经拍好序列的记录...阅读全文

8大经典排序算法-交换排序-快速排序(2)

基本思想:快速排序是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。实现:设要排序的数组是A[N],首先任意选取一个数据(通常选用第一个数据)作为关键数据,...阅读全文

8大经典排序算法-交换排序-冒泡(1)

算法一直是编程的基础,而排序算法是学习算法的开始,排序也是数据处理的重要内容。所谓排序是指将一个无序列整理成按非递减顺序排列的有序序列。排列的方法有很多,根据待排序序列的规模以及对数据的处理的要求,可以采用不同的排序方法。那么就整理下网上搜索的资料,按自己的理解,把C语言的8大排序算法列出来。普通意义上,排序算法可以分为三大类:1 交换类排序法2 插入类排序法3 选择类排序法一.交换类排序法...阅读全文

inline、__inline、__inline__、__forceinline、__attribute__((always_inline))编译器依赖

1、inline is the keyword, in C++ and C99.2、__inline is a vendor-specific(厂商特定) keyword (e.g. MSVC) for inline function in C, since C89 doesn't have it.3、__inline__ is similar to __inline but is from...阅读全文

gcc优化中的likely和unlikely

#ifdef __GNUC__ #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) #else #define likely(x) (x) #define unlikely(x) (x) #...阅读全文

C与C++的10个主要不同点

如上图那样,C++,英文为c plus plus,它是C的超级,C++支持运行大部分C代码,而反过来C却不可以;这里例举了它们之间的主要10个不同点(为了不偏离原本的语意,直接上英文了):1、C follows the procedural programming paradigm while C++ is a multi-paradigm(多范式) language(procedural ...阅读全文

链表问题集锦

链表问题在面试过程中也是很重要也很基础的一部分,链表本身很灵活,很考查编程功底,所以是很值得考的地方。我将复习过程中觉得比较好的链表问题整理了下。下面是本文所要用到链表节点的定义:struct Node{int data; Node* next;};在O(1)时间删除链表节点题目描述:给定链表的头指针和一个节点指针,在O(1)时间删除该节点。[Google面试题]分析:本题与《编程之美》上的...阅读全文

C/C++获取进程常驻内存大小(get the process resident set size )

1、进程内存接口函数2、接口封装实现#if defined(_WIN32) #include <windows.h> #include <psapi.h> #elif defined(__unix__) || defined(__unix) || defined(unix) || (defined(__APPLE__) && defined(__MA...阅读全文

C/C++获取系统物理内存大小

1、各平台调用接口2、接口实现 #if defined(_WIN32) #include <Windows.h> #elif defined(__unix__) || defined(__unix) || defined(unix) || (defined(__APPLE__) && defined(__MACH__)) #include <unistd....阅读全文