
C++
文章平均质量分 74
romancegirls
这个作者很懒,什么都没留下…
展开
-
使用内建函数__builtin_expect进行程序优化
我们常常能在代码中看到以下内容# define likely(x) __builtin_expect(!!(x), 1)# define unlikely(x) __builtin_expect(!!(x), 0)为什么呢?有什么作用?可以看的上述源码中采用了内建函数__builtin_expect来进行定义,即 built in function。 __builtin...原创 2020-02-03 11:03:55 · 448 阅读 · 0 评论 -
C++中的转型操作符
C++中的转型操作符旧式的C转型方式,几乎允许你将任何类型转换为任何其它类型,有其自身的缺陷,表现在以下两方面:1.不能更精确地指明其转型的意图。如将一个pointer-to-base-class-object转型为一个pointer-to-derived-class-object(改变一个对象的类型)和将一个pointer-to-const-object转型为一个pointer-to原创 2015-07-31 16:23:11 · 1344 阅读 · 0 评论 -
2015校招笔试面试算法总结之蓝汛笔试
一、递增矩阵问题二、最长子串问题三、交叉子串问题四、统计在线用户问题原创 2014-10-18 01:07:15 · 2257 阅读 · 2 评论 -
C++文件复制方法总结
使用C++标准程序库的输入输出流(I/O Stream)复制文件,存在许多的方法,方法一:逐个字符复制#include std::ifstream input("in",ios::binary);std::ofstream output("out",ios::binary);char ch;while (input.get(ch)) output 注意:原创 2014-05-20 15:00:51 · 1520 阅读 · 0 评论 -
UC编程基础
一、共享库-fpic:编译选项,位置为无关码-shared:链接选项,共享库LIBRARY_PATH : 链接器使用的库路径环境变量LD_LIBRARY_PATH : 加载器使用的库路径环境变量静态加载:在链接阶段链接共享库gcc main.c -lmath -L.每次启动a.out程序时,加载器都会加载所需要的共享库动态加载:在运行阶段通过代码动态地加载共享库,并原创 2014-05-13 10:50:17 · 1414 阅读 · 0 评论 -
有序二叉树的实现
头文件“bt.h”/* 有序二叉树 */#ifndef _BT_H#define _BT_H#include /* 节点 */typedef struct BsTreeNode { int data; /* 数据 */ struct BsTreeNode* left; /* 左子树 */ struct BsTreeNode* right; /* 右原创 2014-04-24 17:36:41 · 1476 阅读 · 0 评论 -
数据结构基础知识
一 数据结构基本概念 程序设计=数据结构+算法 1.数据结构是相互之间存在一种或多种特定关系的数据的集合。 逻辑 2.数据结构是计算机存储组织数据的方式。 物理形式 3.数据结构的选择直接影响及三级程序的运行效果(时间复杂度)和存储效率(空间复杂度)。 4.数据结构包括三个基本层次: 抽象层-逻辑结构 结构层-物理结构原创 2014-04-19 23:07:46 · 613 阅读 · 0 评论 -
链表
1.地址不连续的节点序列,彼此通过指针相互连接。2.根据不同的结构特作,将链表分为: 1)单向线性链表 2)单向循环链表 3)双向线性链表 4)双向循环链表 5)数组链表 顺序表和链表结合,每个链表指针指向一个数组 6)链表数组 指针数组,每个指针指向一个链表 7)二维链表 由链表组成的链表,每个链表指针又指向链表原创 2014-04-20 22:02:17 · 516 阅读 · 0 评论 -
单向线性链表的实现
/* * 练习:实现单向线性链表 * list_append() - 追加 * list_size() - 测长 * list_print() - 正向打印 * list_rprint() - 反向打印 * list_reverse() - 逆转 * list_middle() - 中间值 * list_merge() - 将两个有序链表合并为一个有序链表 *原创 2014-04-24 17:20:48 · 998 阅读 · 1 评论 -
双向线性链表的实现
头文件“ls.h”函数具体实现过程"la"原创 2014-04-24 16:52:41 · 668 阅读 · 0 评论 -
老鼠走迷宫
/* 老鼠走迷宫 */#include #include #include #include #include #include #include "sl.h"(见基于链表的堆栈实现)/* 空间字符 */#define SPACE_MOUSE '*' /* 老鼠 */#define SPACE_WAY ' ' /* 通路 */#define SPACE_WALL原创 2014-04-22 13:39:38 · 1236 阅读 · 0 评论 -
基于链表的堆栈实现
定义函数接口头文件“sl.h”/* 基于链表的堆栈 */#ifndef _SL_H#define _SL_H#include /* 节点 */typedef struct StackNode { int data; /* 数据 */ struct StackNode* next; /* 后指针 */} STACK_NODE;/* 堆原创 2014-04-22 13:05:47 · 781 阅读 · 0 评论 -
基于数组的堆栈实现
定义函数接口头文件“sa.h”函数功能实现“sa.c”测试用例“”原创 2014-04-22 13:00:59 · 520 阅读 · 0 评论 -
经典排序算法
数值算法:解方程、微积分、数值分析 多用在工程设计非数值算法:搜索、排序、拆分、合并 多用在系统 一、线性搜索1.算法1.1从头开始,依次将每一个元素与查找目标进行比较1.2或者找到目标,或者找不到目标2.评估2.1平均时间复杂度:O(N),线性时间2.2对数据没有任何规律性要求 穷举法 二、二分搜索(折半搜索)1.算法1.1假设表中原创 2014-05-05 11:32:14 · 717 阅读 · 0 评论