C/C++进阶
文章平均质量分 52
FinalFantacy~
这个作者很懒,什么都没留下…
展开
-
C++ 进阶
C++面对对象设计当中经常涉及到有关跟踪输出的功能,这是C++进阶的一个很基础的问题;下面例子将实现这一功能;class Trace {public:Trace() { noisy = 0; }void print(char *s) { if(noisy) printf("%s", s); }void on() { noisy = 1; }void off()原创 2014-07-16 12:08:57 · 1117 阅读 · 0 评论 -
二分查找函數
找到,返回下標;int binary_search(const int* a, int low_position, int high_position, const int key){ high_position--; while(low_position < high_position) { int mid_position = (low_position+原创 2014-10-25 21:59:01 · 752 阅读 · 0 评论 -
strcpy函数用法以及底层实现
strcpy(s1, s2); strcpy函数的意思是:把字符串s2中的内容copy到s1中,连字符串结束标志也一起copy.这样s1在内存中的存放为:ch\0;在cout如果说s1的长度是6,那是错误的. 你没有弄清strlen与sizeof的意思。strlen函数的意思是测试字符串的字符长度,不含字符串结束标志的。sizeof是个运算符,它的结果是字符串在内存原创 2015-03-19 17:55:39 · 1924 阅读 · 0 评论 -
位运算实现 十进制(正负)转换成二进制
我们知道负数的二进制是由其正数的二进制取反(求反码)再加一(求补码)得到的,例如:十进制数528的二进制码为:0000001000010000将其取反(求反码)后的结果 1111110111101111将反码加一(求补码)后结果 1111110111110000所以,-528的二进制码为 1111110111110000小说一下概念,然原创 2014-10-18 16:08:26 · 3284 阅读 · 0 评论 -
cout 输出字符串(指针)常见问题及put,write函数
C++ ostream类为下面的指针类型定义了插入运算符函数:const signed char *;const unsigned char *;const char *;void *;C++用指向字符串存储位置的指针来表示字符串,指针的形式可以是char数组名,显式的char指针或用引号括起来的字符串。 下面是一个简单输出字符串的例子:#include using names原创 2014-11-26 11:38:11 · 4711 阅读 · 0 评论 -
cout 堆栈,operator<< 运算符重载输出问题
在C++中cout的输出流当中,有一些问题很容易出错,就比如下面这道简单程序,看似简单,但却是一个值得深思的问题~~#include using namespace std;int foo(int &x){ cout return ++x;}int main(){ int i = 1;原创 2014-07-23 12:16:09 · 1510 阅读 · 0 评论 -
局部数组过大导致编译栈区溢出问题
在开始ACM的道路上,很多时候会碰到很大的数据范围,而且要用到数组来进行存储;可能会碰到以下的问题:#include int main(){ int n, a[10000005]; //局部 while(~scanf("%d", &n)) { for(int i=0; i<n; i++) scanf("%d", &a[i]); for(原创 2014-10-18 18:12:48 · 2501 阅读 · 0 评论 -
C語言 rand函数 进阶探讨与实现
C语言中随机函数应用 可能大家都知道C语言中的随机函数random,可是random函数并不是ANSI C标准,所以说,random函数不能在gcc,vc等编译器下编译通过。那么怎么实现C语言中的随机函数呢? 除了random函数,还有一个rand函数,也是一个随机函数,可以产生从0到rand_max的随机数。#include #include int原创 2014-10-18 20:04:20 · 1468 阅读 · 2 评论 -
qsort 排序函數 总结
qsort包含在头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序。排序之后的结果仍然放在原数组中。使用qsort函数必须自己写一个比较函数。函数原型:void qsort ( void * base, size_t num, size_t size, int ( * comparator ) ( const void *, const void *原创 2014-10-24 18:00:51 · 841 阅读 · 0 评论 -
swap函數 进阶探讨与实现
相信下面這個C程序很多人都見過啦,當時自己看 美少女战士谭浩强 写的那本书上的解释,反正我当时是没看太懂具体是什么意思,谱架啊~~~#include void swap(int x, int y){ int temp = x; x = y; y = temp;}int main(){ int n, m; while(~scanf("%d %原创 2014-10-18 18:51:50 · 1104 阅读 · 0 评论 -
八皇后問題 (C語言递归實現 回溯法)
八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。現在要統計出所有的可行方案的總數,而且輸出每一種方案皇后擺放的坐標;代碼詳細解析:#include #include #include #include #include #def原创 2014-10-11 19:52:10 · 1406 阅读 · 0 评论 -
main 函数argc , argv 主命令行参数
ARGc和ARGv中的ARG指的是"参数"(ARGuments, argument counter 和 argument vector )至少有两个参数至主函数:ARGc和ARGv;首先是一个至算提供的参数到程序, 第二个是对字符串数组的指针。基本作用:argc, argv 用命令行编译程序时有用。主函数main中变量(int argc, char *argv[ ])的含义原创 2014-11-07 22:07:16 · 1344 阅读 · 0 评论 -
堆
1. 概述堆(也叫优先队列),是一棵完全二叉树,它的特点是父节点的值大于(小于)两个子节点的值(分别称为大顶堆和小顶堆)。它常用于管理算法执行过程中的信息,应用场景包括堆排序,优先队列等。2. 堆的基本操作堆是一棵完全二叉树,高度为O(lg n),其基本操作至多与树的高度成正比。在介绍堆的基本操作之前,先介绍几个基本术语:A:用于表示堆的数组,下标从1开始,一直到n原创 2015-04-14 21:29:37 · 668 阅读 · 0 评论