C/C++读书笔记
文章平均质量分 66
王世晖
呵呵哒
展开
-
试除法质数打表方法的逐步改进--经典面试题
试除法质数打表方法的逐步改进--经典面试题参考博客:点击打开链接求质数算法的N种境界 - 试除法和初级筛法http://blog.csdn.net/wdqfzy/article/details/7034784◇需求1请实现一个函数,对于给定的整型参数 N,该函数能够把自然数中,小于 N 的质数,从小到大打印出来。比如,当 N = 10,则打印出2原创 2013-05-07 23:07:57 · 2010 阅读 · 0 评论 -
C++读书笔记之 单目运算符重载 自增++自减——操作符重载
程序运行结果如下:*****************************************now the time is :Hour: 22 Minute:57test prefix ++:Hour: 22 Minute:58Hour: 22 Minute:59Hour: 23 Minute:0Hour: 23 Minute:1Hour: 23 Min原创 2013-05-15 23:28:39 · 1157 阅读 · 0 评论 -
C++读书笔记之 单目运算符重载 取负符号 - 重载
#include using namespace std;class Distance{ private: double feet; // 0 to infinite double inches; // 0 to 12 public: // required constructors D原创 2013-05-15 23:12:04 · 4229 阅读 · 0 评论 -
C语言整数类型及printf格式化输出问题总结复习及进制转换的简单实现
C语言允许使用八进制整数与十六进制整数,八进制整数加前导0(数字),十六进制整数加前导0X。int a = 100;也可以这样写:int a = 0144; // 4+8*4+1*8*8=100用八进制表达时,不能少了最前的那个0。否则计算机会通通当成10进制。C,C++规定,16进制数必须以 0x开头。比如 0x1表示一个16进制数。而1则表示一个十进制原创 2013-06-01 21:41:32 · 2645 阅读 · 0 评论 -
C++读书笔记之this指针的用法
C++ this指针的用法this指针的含义及其用法:1. this指针是一个隐含于每一个成员函数中的特殊指针。 它指向正在被该成员函数操作的那个对象。2. 当对一个对象调用成员函数时,编译程序先将对象的地址赋给this指针, 然后调用成员函数,每次成员函数存取数据成员时,由隐含使用this指针。3. 当一个成员函数被调用时,自动向它传递一个隐含的参数原创 2013-06-03 00:07:31 · 7285 阅读 · 0 评论 -
C++读书笔记之重载赋值运算符 overload assignment operator
#include #include using namespace std;class Internet{ public: Internet(char *name,char *url) { this->name = new char[strlen(name)+1]; this->url = new char[strlen(url)+原创 2013-06-03 00:25:47 · 2204 阅读 · 0 评论 -
C/C++中三种方法显示当前系统时间 localtime time.h
#include#includeusing namespace std;void Get_Time_V1(){ int t=time(NULL); int h=(t/3600)%24+8; int m=(t/60)%60; int s=t%60; cout << h << ":" << m << ":" << s << endl;}void Ge原创 2013-06-03 19:07:20 · 5049 阅读 · 1 评论 -
四种方法判断栈的生长方向 Determine the Direction of Stack Growth
#include#include#includeusing std::cout;static void find_stack_direction(void);static int stack_dir;static void stack_growth_v1(void){ static char *addr = NULL; /* address of first`dummy',原创 2013-06-03 22:58:00 · 2525 阅读 · 1 评论 -
C++读书笔记之纯虚函数pure virtual function
In object-oriented programming, a virtual function or virtual method is a function or method whose behavior can be overridden within an inheriting class by a function with the same signature. This con原创 2013-06-03 23:24:39 · 1452 阅读 · 0 评论 -
判断一个数是不是回文数
#include#include#includeusing namespace std;int IsReverseStr(char *aStr){ int i,j; int found=1; if(aStr==NULL) return -1; j=strlen(aStr); for(i=0;i<j/2;i++)原创 2013-06-03 19:13:18 · 1573 阅读 · 1 评论 -
C++读书笔记之重载双目运算符 Cplusplus overload binary operator
Overloading binary operatorsYou overload a binary unary operator with either a nonstatic member functionthat has one parameter, or a nonmember function that has two parameters. Supposea binary ope原创 2013-06-03 23:48:41 · 2564 阅读 · 0 评论 -
C++ 读书笔记之 重载 Overloading
C++ allows you to specify more than one definition for a function name or an operator in the same scope, which is called function overloading and operator overloading respectively.An overloaded原创 2013-05-15 23:01:47 · 1599 阅读 · 0 评论 -
C++ 标准模板库学习之 string 类 详解 (一) 将一个句子中每个单词的单词字母顺序翻转 关于npos find_first_not_of find_first_of getline
先看例子程序:#include #include using namespace std;void test_getline(void){ string s1; cout as the delimiter): "<<endl; getline(cin,s1, ' '); cout << "You entered: " << s1 << endl; co原创 2013-05-15 10:07:50 · 2193 阅读 · 1 评论 -
C++中控制浮点数精度函数setprecision使用方法
函数原型:setprecision(streamsize _Prec);功能:使用setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6参数:streamsize _Prec 浮点数的精度返回值:The manipulator returns an object that, when extracted from or inse原创 2013-05-12 21:41:28 · 10405 阅读 · 0 评论 -
STL学习之插入排序的STL实现
直接插入排序的C++实现及随机数组的产生方法这是之前的插入排序的例子程序,改用STL实现后暂时并没有体现vector的优势,以下是插入排序的STL实现#include#include#include#include#include#includeusing namespace std;// 生成元素为随机数的数组template void Random(vecto原创 2013-05-12 17:16:34 · 2947 阅读 · 0 评论 -
如何编程解决百度面试题100盏灯问题
百度100盏灯问题Q:有100盏灯泡,第一轮点亮所有电灯,第二轮每两盏灯熄灭一盏,即熄灭第2盏,第4盏,以此类推,第三轮改变编号为3的倍数的电灯,第3盏,第6盏,如果原来那盏灯是亮的,就熄灭它,如果原来是灭的,就点亮它,以此类推,直到第100轮。问第100结束后,还有多少盏灯泡是亮的?A:1.对于每盏灯,拉动的次数是奇数时,灯就是亮着的,拉动的次数是偶数时,灯就是关原创 2013-05-12 21:43:51 · 6698 阅读 · 4 评论 -
C++文件读写操作(一)将字母表写入TXT文本文件
fstream提供了三个类,用来实现c++对文件的操作。(文件的创建、读、写)。ifstream -- 从已有的文件读 ofstream -- 向文件写内容 fstream - 打开文件供读写 文件打开模式: ios::in 读ios::out 写ios::app 从文件末尾开始写ios::binary 二进制模式ios::nocreate 打开原创 2013-05-13 18:17:02 · 18853 阅读 · 1 评论 -
C++ 标准模板库STL 双向链表 list 使用方法与应用介绍(一)
STL中的list就是一双向链表,可高效地进行插入删除元素。List 是C++标准程式库中的一个类,可以简单视之为双向连结串行,以线性列的方式管理物件集合。list 的特色是在集合的任何位置增加或删除元素都很快,但是不支持随机存取。list 是C++标准程式库提供的众多容器(container)之一,除此之外还有vector、set、map、…等等。list 以模板方式实现(即泛型),可以原创 2013-05-13 21:55:37 · 13511 阅读 · 0 评论 -
C++文件读写操作(四)读取文件数据到临时数组
相关文章C++文件读写操作(一)将字母表写入TXT文本文件 C++文件读写操作(二)逐字符读取文本和逐行读取文本 C++文件读写操作(三)如何统计文本的行数及如何读取文件某一行内容 C++文件读写操作(四)读取文件数据到临时数组//读取文件数据到临时数组#include #include #include using n原创 2013-05-13 18:23:31 · 21214 阅读 · 0 评论 -
C++文件读写操作(二)逐字符读取文本和逐行读取文本
相关文章C++文件读写操作(一)将字母表写入TXT文本文件 C++文件读写操作(二)逐字符读取文本和逐行读取文本 C++文件读写操作(三)如何统计文本的行数及如何读取文件某一行内容 C++文件读写操作(四)读取文件数据到临时数组 #include #include using namespace std;void testBy原创 2013-05-13 18:21:03 · 69373 阅读 · 3 评论 -
C++文件读写操作(三)如何统计文本的行数及如何读取文件某一行内容
相关文章C++文件读写操作(一)将字母表写入TXT文本文件 C++文件读写操作(二)逐字符读取文本和逐行读取文本 C++文件读写操作(三)如何统计文本的行数及如何读取文件某一行内容 C++文件读写操作(四)读取文件数据到临时数组 //如何统计文本的行数及如何读取文件某一行内容:#include #in原创 2013-05-13 18:22:25 · 47139 阅读 · 2 评论 -
C++ 标准模板库STL multimap 使用方法与应用介绍(一)
示例程序如下 实现字典功能:#include #include #include #include using namespace std;int main(){ // define multimap type as string/string dictionary typedef multimap StrStrMMap; // create emp原创 2013-05-14 13:30:47 · 6522 阅读 · 0 评论 -
C/C++经典面试题总结摘选 C/C++程序员面试宝典(三)
========================================================================一.找错题 试题1: void test1(){ char string[10]; char* str1 = "0123456789"; strcpy( string, str1 );} 试题2: v原创 2013-06-04 21:43:27 · 1953 阅读 · 0 评论 -
Effective C++ 条款总结 读书笔记(一)
Item Effective C++ 条款 item_3Use new and delete instead of malloc and freeThis rule warns you if malloc and free are used in your code. Reason for rule: new and delete can handle construc原创 2013-06-14 11:17:38 · 1786 阅读 · 0 评论 -
递归方法判断数组是否为递增数组
#includeusing namespace std;bool IsIncrease( int a[], int n ){ if( n==1 ) return true; if( n==2 ) return a[n-1] >= a[n-2]; return IsIncrease( a,n-1) && ( a[n-1] >= a[n-2原创 2013-04-25 21:37:59 · 1916 阅读 · 0 评论 -
通过数组初始化链表的两种方法:指向指针的引用node *&tail和指向指针的指针(二维指针)node **tail
void init_node(node *tail,char *init_array)这样声明函数是不正确的,函数的原意是通过数组初始化链表若链表结点传入的是指针,则并不能创建链表,除非是二维指针即指向指针的指针,或者是指向指针的引用因为传入的虽然是指针,但是对形参的操作并不能影响实参,函数内修改的是实参的副本。要想在函数内部修改输入参数,要么传入的是实参的引用,要么传入的是实参的地址原创 2013-07-29 16:31:22 · 2115 阅读 · 0 评论 -
C/C++ 函数指针 总结
什么是函数指针 就像某一变量的地址可以存储在相应的指针变量中一样,指向函数的指针中保存着函数代码起始处的地址 函数指针的声明当声明一个函数指针时,必须声明它指向的函数类型。要指定函数类型,就要指出函数的返回类型和参数列表,如: void (* pf)(int, int); //pf是一个函数指针,它指向的函数类型为:返回值为void,参数列表为(int, int)原创 2013-08-06 10:34:29 · 6613 阅读 · 3 评论 -
C++空类产生哪些成员函数 || C++类可以自动生成的6个成员函数
class Empty { public: Empty(); // 缺省构造函数 Empty( const Empty& ); // 拷贝构造函数 ~Empty(); // 析构函数 Empty& operator=( const Empty& ); // 赋值运算符 Empty* operator&(); // 取址运算原创 2013-08-06 10:50:27 · 2335 阅读 · 2 评论 -
【笔试】:编程实现C++string 类成员函数
已知String类声明如下:class String { public: String(const char *str = NULL); // 通用构造函数 String(const String &another); // 拷贝构造函数 ~ String(); // 析构函数 String & operater =(const String &原创 2013-08-06 15:27:46 · 1751 阅读 · 0 评论 -
C++ 类的const成员函数
我们定义的类的成员函数中,常常有一些成员函数不改变类的数据成员,也就是说,这些函数是"只读"函数,而有一些函数要修改类数据成员的值。如果把不改变数据成员的函数都加上const关键字进行标识,显然,可提高程序的可读性。其实,它还能提高程序的可靠性,已定义成const的成员函数,一旦企图修改数据成员的值,则编译器按错误处理。const成员函数和const对象 实际上,const成员函数还有原创 2013-08-07 22:12:48 · 2260 阅读 · 1 评论 -
typedef用途之一:理解C/C++中复杂声明
看如下的声明:int RollNum[30][4];int (*p)[4]=RollNum;int *q[5];这里,p被声明为一个指向一个4元素(int类型)数组的指针,而q被声明为一个包含5个元素(int类型的指针)的数组。可以在同一个声明中混合实用*和&,如下:int **p1; // p1 is a pointer to a pointer to an int.原创 2013-08-08 22:05:20 · 2065 阅读 · 0 评论 -
C++ 类的深拷贝与浅拷贝||深拷贝通过重载拷贝构造函数与重载赋值运算符实现
在面向对象程序设计中,对象间的相互拷贝和赋值是经常进行的操作。如果对象在申明的同时马上进行的初始化操作,则称之为拷贝运算。例如:class1 A("Time"); class1 B=A;此时其实际调用的是B(A),拷贝构造函数。如果对象在申明之后,在进行的赋值运算,我们称之为赋值运算。例如:class1 A("Time"); class1 B;B=A原创 2013-08-08 21:42:11 · 2486 阅读 · 0 评论 -
error:只有静态常量整型数据成员才可以在类中初始化
类中 static const double PI=3.1416;error:只有静态常量整型数据成员才可以在类中初始化常整型静态数据成员可以在类中直接初始化,而常实型静态数据成员不可以class circle{int a; // 普通变量,不能在类中初始化static int b; // 静态变量,不能在类中初始化static const int c=2原创 2013-11-15 16:25:51 · 3461 阅读 · 0 评论 -
C++ const关键字用法详解
1const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。事实上这个概念谁都有只是三种声明方式非常相似很容易记混。Bjarne在他的The C++ Programming Language里面给出过一个助记的方法:把一个声明从右向左读。( * 读成 pointer to )char * const cp; c原创 2013-07-31 09:38:20 · 2278 阅读 · 3 评论 -
C语言函数参数入栈顺序探讨及栈的增长方向
四种方法判断栈的生长方向 Determine the Direction of Stack Growth由该文章知道计算机中栈的生长方向为由高到低,及栈底为高地址,栈顶为低地址,因此函数输入参数入栈顺序可以由栈地址大小判断,地址大的先入栈,地址小的后入栈#includevoid Var_Order(int x, int y, int z){ printf原创 2013-07-31 20:17:43 · 2044 阅读 · 0 评论 -
结构体字节对齐详解
为什么要对齐?效率问题,不同架构,不同处理方法。在实际的程序开发中,为了提高数据的读取效率,在内存资源足够的情况下,一般定义数据结构时候,因该考虑四字节对齐,其原因很简单,现在的计算机大部分是32位机,也就是四个字节。在cpu每次执行读取数据时候,则相关处理数据的寄存器/ 累加器均只能处理32位数据,则只能读取(一次)32位数据。有些情况下字节对齐的数据结构,要比非对齐的数据结构上原创 2013-07-31 12:30:22 · 4135 阅读 · 4 评论 -
C/C++经典面试题总结摘选 C/C++程序员面试宝典(一)
===================================================================================1. char p[]和char *p的区别。 (1)char *GetString(void){ char p[] = "Hello world"; return p;}void ma原创 2013-06-04 21:30:00 · 3930 阅读 · 1 评论 -
C/C++经典面试题总结摘选 C/C++程序员面试宝典(二)
==============================================================================1.new 、 delete 、 malloc 、 free 关系 delete 会调用对象的析构函数 , 和 new 对应 free 只会释放内存, new 调用构造函数。 malloc 与 free 是 C++/C 语言的标准库原创 2013-06-04 21:39:14 · 2339 阅读 · 0 评论 -
Effective C++ 条款总结 读书笔记(二)
Item Effective C++ 条款 item_20Avoid data members in the public interfaceThis rule warns you if data members are present in the public interface. Instead of making data members public, you should原创 2013-06-14 23:04:42 · 1337 阅读 · 0 评论 -
c++类静态数据成员与类静态成员函数
/************************************************************ 声明为static的类成员或者成员函数便能在类的范围内共同享, 我们把这样的成员称做静态成员和静态成员函数。下面实例来说明这个问题,每建立一个对象设置类静态成员变量自动加一 *******************************************原创 2013-06-05 22:23:04 · 999 阅读 · 0 评论