C++基础算法
文章平均质量分 73
xiamentingtao
这个作者很懒,什么都没留下…
展开
-
各种排序算法总结
转载:http://blog.csdn.net/warringah1/article/details/8951220明天就要去参加阿里巴巴的实习生笔试了,虽然没想着能进去,但是态度还是要端正的,也没什么可以准备的,复习复习排序吧。1 插入排序void InsertSort(int a[], int n){ for (int i=1; in; +转载 2015-04-22 16:34:12 · 600 阅读 · 0 评论 -
全排列算法及实现
转载:1.http://blog.csdn.net/hackbuteer1/article/details/66574352.http://blog.sina.com.cn/s/blog_9f7ea4390101101u.html3.http://www.slyar.com/blog/stl_next_permutation.html4.http://www.cplusplus.c转载 2015-04-22 19:38:51 · 646 阅读 · 0 评论 -
优先队列priority_queue 用法详解
转载: 1.优先队列priority_queue 用法详解 2.STL系列之五 priority_queue 优先级队列优先队列是队列的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序每次的push和pop操作,队列都会动态的调整,以达到我们预期的方式来存储。例如:我们常用的操作就是对数据排序,优先队列默认的是数据大的优先级高所以我们无论按照什么顺序push一堆转载 2015-04-22 16:56:31 · 893 阅读 · 0 评论 -
拷贝构造函数与赋值运算符重载的区别
#include<iostream> using namespace std;class Test{public: Test() { ctor_count++; cout<<"ctor "<<endl; } Test(const Test & r) { ctor_count++; cout<<原创 2015-04-18 10:57:04 · 1255 阅读 · 0 评论 -
二分查找法的循环与递归实现及时间复杂度分析
转载:http://baike.baidu.com/link?url=3aEK-qcVbYi6ioJOsf-dFmvFQ6WQgzTwnE9JkmlHBc88qk-D00SambfrSl3hVh_UyqyxF8QEUosfq20IQQW5z_和http://hi.baidu.com/networkor/item/80d817f8331d8e08a7298834设数组为整数数组,从小到大排序转载 2015-04-22 11:19:16 · 4954 阅读 · 0 评论 -
c++空类实例大小不是0原因
转载:http://blog.csdn.net/hitblue/article/details/3726754初学者在学习面向对象的程序设计语言时,或多或少的都些疑问,我们写的代码与最终生编译成的代码却 大相径庭,我们并不知道编译器在后台做了什么工作.这些都是由于我们仅停留在语言层的原因,所谓语言层就是教会我们一些基本的语法法则,但不会告诉我们为什么这么做?今天和大家谈的一点感悟就是我在学习编转载 2015-04-18 11:21:57 · 537 阅读 · 0 评论 -
error LNK2001: 无法解析的外部符号 "class std::basic_ostream<char,struct std::char_traits<char> > 的解决办法
#include #include using namespace std;templateclass P{public: P(int n=0){num=n;} P(const P& copy){num=copy.num;} friend ostream&operator & obj); private: int num;};template ostream&oper原创 2015-04-03 18:22:42 · 18553 阅读 · 1 评论 -
C++ 中explicit的使用
C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。 1 是个构造器 ,2 是个默认且隐含的类型转换操作符。所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且转载 2015-03-31 11:30:35 · 996 阅读 · 0 评论 -
struct 与class的关系与区别
struct 与class的关系与区别原创 2015-03-30 22:01:04 · 858 阅读 · 0 评论 -
类的静态成量变量必须初始化
因为类的静态成员变量是所有实例共用的.所以得在类外初始化.调用的时候可以通过对象调用,也可以通过类直接调用class A{public: int i; //有默认值};class B{public: static int n; static A Aobj;};int B::n = 1; //静态成员变量的转载 2015-03-31 10:12:58 · 661 阅读 · 0 评论 -
二进制与十进制的转换
本文参考:http://www.360doc.com/content/11/0308/14/5327079_99222581.shtml文献整理所得。1.正整数的十进制转换为二进制. 十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二原创 2015-03-30 17:29:11 · 2614 阅读 · 0 评论 -
C++中的空类,默认产生哪些类成员函数?
class Empty{public: /*Empty();//默认构造函数 Empty(const Empty& rhs);//拷贝构造函数 ~Empty();//析构函数 Empty& operator=(const Empty& rhs);//赋值函数 Empty* operator&();//取地址运算符 const Empty* operator&() const转载 2015-03-30 21:32:16 · 2397 阅读 · 1 评论 -
字符串常量与字符串变量
参考:http://blog.csdn.net/chenwenshi/article/details/6702576定义:在一个双引号“ ”内的字符序列或者转义字符序列称为字符串常量例如:“HI HI!” “a” “\n\t”这些字符串常量是不能改变的,如果试图改变指针所指向的内容是错误的因为字符串常量是存在静态内存区的,不可以改变字符串变量。如定义原创 2015-03-29 21:00:32 · 2757 阅读 · 0 评论 -
将一句话的单词进行倒置,标点符号不倒换。比如一句话:“i love you.”倒换后变为"you. love i"
#include #include #include //将一句话的单词进行倒置,标点符号不倒换。比如一句话:“i love you.”倒换后变为"you. love i"void reverse(char *str){ int i=0,j=strlen(str)-1; int begin,end; char temp; //第一步进行全部翻转 while (i<j) {原创 2015-03-29 20:54:38 · 4002 阅读 · 0 评论 -
OBJ 文件格式
OBJ文件是一种标准的3D模型文件格式,很适合用于3D软件模型之间的互导。比如在3dsMax或LightWave中建了一个模型,想把它调到Maya里面渲染或动画,导出OBJ文件就是一种很好的选择。目前几乎所有知名的3D软件都支持OBJ文件的读写,不过很多软件需要通过插件才能做到这一点。 OBJ文件特点(1)OBJ是一种3D模型文件,因此不包含动画、材质特性、贴图路径、动力学、粒子等信息转载 2015-03-28 17:14:44 · 898 阅读 · 0 评论 -
strncpy与strcpy的区别与注意事项
strncpy 是 C语言的库函数之一,来自 C语言标准库,定义于 string.h,char *strncpy(char *dest, char *src, int n),把src所指字符串的前n个字节复制到dest所指的数组中,并返回指向dest的指针。strcpy只是复制字符串,但不限制复制的数量,很容易造成缓冲溢出。strncpy要安全一些。strncpy能够选原创 2015-04-19 21:03:09 · 1222 阅读 · 0 评论 -
string中c_str()、data()、copy(p,n)函数的用法
转载:http://www.cnblogs.com/qlwy/archive/2012/03/25/2416937.html标准库的string类提供了3个成员函数来从一个string得到c类型的字符数组:c_str()、data()、copy(p,n)。1. c_str():生成一个const char*指针,指向以空字符终止的数组。注:①这个数组的数据是临时转载 2015-04-19 21:20:12 · 569 阅读 · 0 评论 -
C++中cin、cin.get()、cin.getline()、getline()等函数的用法
转载:http://www.cnblogs.com/flatfoosie/archive/2010/12/22/1914055.html c++输入流函数主要以下几个: 1、cin 2、cin.get() 3、cin.getline() 4、getline() 附:cin.ignore();cin.get()//跳过一个字符,例如不想要的回车,空格等字符 1、cin>>转载 2015-04-19 20:28:29 · 1100 阅读 · 0 评论 -
strcpy和memcpy的区别
转载:http://www.cnblogs.com/stoneJin/archive/2011/09/16/2179248.htmlstrcpy与memcpy都是标准的C库函数,strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const ch转载 2015-06-02 08:10:07 · 502 阅读 · 0 评论 -
C++内存管理详解
C++内存管理详解 转载:http://blog.csdn.net/yingxunren/article/details/4344933伟大的Bill Gates 曾经失言: 640K ought to be enough for everybody — Bill Gates 1981 程序员们经常编写内转载 2015-05-30 22:08:48 · 690 阅读 · 0 评论 -
华为2015年实习生招聘考试试题
第一题:描述:目描述: 编写一个函数,将字符串中的大写的字母(A~Z)挑出来,同时保留原字符串中的空格,将挑出的大写字母和空格按原始位置组成新的字符串。例如:1)输入:AUStralia; 输出:AUS2)输入:He Is a DoG 输出:H I DG运行时间限制:1 Sec内存限制:原创 2015-06-16 19:43:42 · 2419 阅读 · 0 评论 -
生成0到1之间随机数的C代码
#include #include #include int main( ){ int i; srand( (unsigned)time( NULL ) ); for( i = 0; i printf( "%5.2f\n", rand()RAND_MAX); return 0;}原创 2015-05-27 09:49:12 · 7497 阅读 · 0 评论 -
字符串的全排列和组合算法
全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。首先来看看题目是如何要求的(百度迅雷校招笔试题)。一、字符串的排列用C++写一个函数, 如 Foo(const char *转载 2015-05-20 17:50:40 · 474 阅读 · 0 评论 -
c++枚举类型
转载:http://www.cnblogs.com/hicjiajia/archive/2009/09/27/1574957.html1、枚举enum的用途浅例 写程序时,我们常常需要为某个对象关联一组可选alternative属性.例如,学生的成绩分A,B,C,D等,天气分sunny, cloudy, rainy等等。 更常见的,打开一个文件可能有三种状态:inp转载 2015-05-10 22:45:31 · 610 阅读 · 0 评论 -
C++的4种类型转换关键字及其特点
C++中有四种类型转换关键字,分别是reinterpret_cast,static_cast,const_cast,dynamic_cast.这是C++ 为了减少强制转换的副作用,并且在查错时使程序员能够快速定位(总是最值得怀疑的)强制转换,在标准C++中新增加了4个关键字*_cast,用来提倡一种全新的C++显式转换语法: *_cast (expression)reinterpret_ca原创 2015-04-17 11:50:12 · 598 阅读 · 0 评论 -
C++允许重载的运算符和不允许重载的运算符
C++中绝大部分的运算符允许重载,具体规定见表10.1。表10.1 C++允许重载的运算符双目算术运算符+ (加),-(减),*(乘),/(除),% (取模)关系运算符==(等于),!= (不等于), (大于>,=(大于等于)逻辑运算符||(逻辑或),&&(逻辑与),!(逻辑非)单目运算符+ (转载 2015-04-16 11:38:14 · 1016 阅读 · 0 评论 -
成员指针运算符 .* 和 ->*
转载: http://www.groad.net/bbs/thread-5548-1-1.html有一种特殊的指针叫做成员指针,它们通常指向一个类的成员,而不是对象中成员的特定实例。成员指针并不是真正的指针,它只是成员在对象中的偏移量,它们分别是:.* 和 ->* 。下面例子说明了成员指针 .* 的用法:#include "stdafx.h"#include usi转载 2015-04-16 11:38:05 · 483 阅读 · 0 评论 -
前缀++ 后缀++ 运算符重载
下面例子程序中 const Fraction operator ++(int) 中 int不过是个哑元(dummy),是永远用不上的 它只是用来判断++是prefix 还是 postfix 记住,如果有哑元,则是postfix,否则,就是prefix 就像其他的一元算法和逻辑运算一样 而其实在C++中用到这种哑元的也只有在转载 2015-04-16 11:37:30 · 541 阅读 · 0 评论 -
c++中try catch的用法
在c++中,可以直接抛出异常之后自己进行捕捉处理,如:(这样就可以在任何自己得到不想要的结果的时候进行中断,比如在进行数据库事务操作的时候,如果某一个语句返回SQL_ERROR则直接抛出异常,在catch块中进行事务回滚)#include <iostream>#include <exception>using namespace std;int main () { try {转载 2015-04-23 15:56:20 · 11340 阅读 · 0 评论 -
你真的会写二分检索吗?
转载:http://blog.chinaunix.net/uid-1844931-id-3337784.html 二分法转载 2015-04-23 10:08:03 · 627 阅读 · 0 评论 -
sizeof(数组名)和sizeof(指针)
转载:http://blog.csdn.net/kangroger/article/details/20653255在做这道题时:32位环境下,int *p=new int[10];请问sizeof(p)的值为()A、4 B、10 C、40 D、8我以为正确答案为C,int类型为32转载 2015-04-19 21:27:54 · 673 阅读 · 0 评论 -
用C++流成员函数put输出单个字符
转载:http://c.biancheng.net/cpp/biancheng/view/254.html转载 2015-04-19 20:09:58 · 1346 阅读 · 0 评论 -
C++ stringstream介绍,使用方法与例子
C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。 istringstream类用于执行C++风格的串流的输入操作。 ostringstream类用于执行C风格的串流的输出操作。 strstream类同时可以支持C风格的串流的输入输出操作。 istringstream类是从转载 2015-04-19 20:00:34 · 909 阅读 · 0 评论 -
数组的sizeof
转载:http://blog.163.com/chen_xinghuan/blog/static/17220158220112182838196/ 数组的sizeof值等于数组所占用的内存字节数,如: char a1[] = “abc”; int a2[3]; sizeof( a1 ); // 结果为4,字符 末尾还存在一个NULL终止符 sizeof( a2 );转载 2015-04-19 21:34:29 · 689 阅读 · 0 评论 -
欧几里得算法(即辗转相除法)的时间复杂度
欧几里得算法(即辗转相除法)的时间复杂度 本文是参考新浪博客而写。 欧几里得算法, 又称辗转相除法, 用于求两个自然数的最大公约数. 算法的思想很简单, 基于下面的数论等式 gcd(a, b) = gcd(b, a mod b) 其中gcd(a, b)表示a和b的最大公约数, mod是模运算, 即求a除以b原创 2015-03-28 16:56:34 · 23275 阅读 · 0 评论