C/C++
暗黑独角兽
这个作者很懒,什么都没留下…
展开
-
关于VS的Debug一些问题
调试务必选择Debug模式,否则调试无效。可以用a,10的形式查看数组a中的前10个值原创 2014-04-13 12:09:25 · 558 阅读 · 0 评论 -
函数模板与类模板
参考http://blog.csdn.net/csw_100/article/details/5844615#include using namespace std;template void func(T a){ cout << a << endl;}template class A{public: A(T a):data(a){} T data;原创 2016-05-03 19:33:14 · 367 阅读 · 0 评论 -
C++单例
#include #include #include #include using namespace std;//单例类只能有一个实例//单例类必须自己创建自己的唯一实例//单例类必须给所有其他对象提供这一个实例//C++单例class Singleton{private: static Singleton *instance; Singleton(){}pu原创 2016-04-20 12:11:58 · 275 阅读 · 0 评论 -
const static
#include using namespace std;class A{public: int data; //const成员的初始化必须在构造函数初始化列表中初始化,不可以在构造函数函数体内初始化 const int const_data; //static成员的初始化或赋值不能在类的内部 static int static_data; //只有静态常量整原创 2016-04-20 12:13:04 · 281 阅读 · 0 评论 -
C++组合与继承
两篇文章http://www.cnblogs.com/whitewolf/archive/2010/05/03/1726519.htmlhttp://www.cnblogs.com/liuling/archive/2013/05/01/extends.html转载 2016-04-21 11:16:06 · 505 阅读 · 0 评论 -
初始化列表
#include #include using namespace std;//必须使用初始化列表的四种情况//参考http://www.cnblogs.com/graphics/archive/2010/07/04/1770900.html//1. 常量成员class A{public: A(int x):a(x){} const int a;};//2. 引用成原创 2016-04-30 12:01:00 · 437 阅读 · 0 评论 -
C++ split
#include #include #include using namespace std;//find函数寻找完整匹配,find_first_of函数寻找任一匹配//http://www.cnblogs.com/mumuliang/archive/2009/11/20/1873571.htmlvector split(string s, string delim){ vect原创 2016-04-23 14:32:06 · 844 阅读 · 0 评论 -
函数模板隐式调用时的优先级
#include #include using namespace std;//当函数模板隐式调用时,若同时存在模板函数和非模板函数,优先匹配非模板函数templateinline void foo(T a) { cout << "in template\t" << a << endl;}inline void foo(int a) { cout << "in speci原创 2016-05-19 11:19:17 · 668 阅读 · 0 评论 -
输入输出运算符重载
#include #include using namespace std;//输入输出流运算符重载有两点需要注意//1. 函数参数要用引用,primer上是这样解释的:不用引用的话就是按值传递,而iostream规定是不允许拷贝其副本的,所以必须要用引用//2. 函数返回值应当是函数参数中输入输出流的引用,这是为了适用于连续输入输出的情形,具体见下面的例子//参考 http://b原创 2016-05-19 12:52:52 · 507 阅读 · 0 评论 -
读入一行以空格隔开的参数
#include #include #include #include using namespace std;//读入一行以空格隔开的参数//1. 用getline从控制台读入一行//2. 利用istringstream对象绑定一行字符串//这种方式可以免去手动切割字符串的复杂操作,解决了while (cin >> s)无法终止循环的问题int main(){ stri原创 2016-05-19 13:18:12 · 1481 阅读 · 0 评论 -
函数指针与function对象
《effective C++》p171-p174#include #include using namespace std;//function对象( 也可直接写作typedef function my_func; )typedef tr1::function my_func;//函数指针typedef void (*my_func_2)(int);void fun原创 2016-04-24 14:50:36 · 472 阅读 · 0 评论 -
函数调用运算符的重载
#include #include using namespace std;#if 1class st{public: //重载+运算符 void operator+(int i){ cout << "override +:\t"<< i << endl; } //重载()运算符(函数调用运算符, 与一般运算符的使用方式有所不同) //重载了函数调用运算符,原创 2016-04-24 15:24:34 · 741 阅读 · 0 评论 -
整数转字符串
#include #include using namespace std;int main(){ int i = 12345; int max_length = 80; char *chars = new char[max_length]; sprintf(chars, "%i", i); string str = string(chars); int t原创 2016-09-09 21:03:24 · 377 阅读 · 0 评论 -
字符串转整数
#include #include using namespace std;int myAtoi(string str) { string s = str; int index = 0; bool flag = true; if (str.size() == 0){ return 0; } while (s[index]原创 2016-09-09 20:54:42 · 239 阅读 · 0 评论 -
虚函数的内存结构
//参考http://www.cnblogs.com/Ripper-Y/archive/2012/05/15/2501930.html//参考http://blog.csdn.net/haoel/article/details/1948051/#include using namespace std;class base { virtual void f(){ cout<<"base原创 2016-05-13 22:58:54 · 393 阅读 · 0 评论 -
重载、覆盖、重写(隐藏)
#include #include using namespace std;/*参考http://www.cnblogs.com/itech/archive/2010/06/04/1751532.htmlOverload(重载):在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数或返回值不同(包括类型、顺序不同),即函数重载。(1)相同的范围(在同一个类中);原创 2016-04-30 21:08:15 · 626 阅读 · 0 评论 -
大小端判断
#include #include using namespace std;int main(){ //小端 数据高字节保存在内存高地址,地址由大向小增长 //对以下两种方法,小端输出4 3 2 1 //方法1 union { int i; char c[sizeof(int)]; }un; un.i = 0x01020304; cout原创 2016-04-30 13:35:22 · 406 阅读 · 0 评论 -
如何用键盘进行选定操作
以下方法在编程选定特定的代码时,非常有用,转载 2014-04-13 11:25:50 · 4445 阅读 · 0 评论 -
文件读写操作
以下是几个简单例子,原创 2014-04-13 12:23:19 · 525 阅读 · 0 评论 -
uchar类型保存整型数
uchar占一个字节,最大可保存到255原创 2014-05-23 11:06:11 · 5309 阅读 · 0 评论 -
指针的引用
//关于指针的引用*&//指针的引用,相当于传递的是指针的指针,这样指针的数值是可以改变的,指针指向的数据也是可以改变的//单传递指针,不传递指针的引用,那么指针指向的数据是可以改变的,而指针本身是不可以改变的//fun(int* pA); //pA的数值在函数返回后不会变化 //fun(int*& pA); //pA的数值在函数返回可能会发生变化,如果fun函数内部对pA赋值的原创 2016-04-01 13:27:17 · 220 阅读 · 0 评论 -
函数指针
形式:void (*fun_type) (int* a)//例1,一个简单例子void f(int *a){ *a = 2333;}int main(){ void (*pf)(int *a) = &f; int a = 5; f(&a); //下面两种调用方法结果一致,因为编译器使用函数名时总是会将其转换为函数指针,第二种的操作多余原创 2016-04-01 13:26:05 · 280 阅读 · 0 评论 -
C/C++头文件版本演变
C/C++头文件版本演变参考:http://blog.sina.com.cn/s/blog_a2d423a001010qzn.htmlhttp://blog.csdn.net/luoweifu/article/details/20242307在将C库和旧的C++库放入名字空间std 中的过程中,对1)旧的C++头文件。将C++头文件名中的.h 去掉,所以变成了,原创 2016-04-01 13:28:34 · 1063 阅读 · 0 评论 -
ASCII表
转载于http://zh.wikipedia.org/wiki/ASCII值得注意的是转载 2014-05-23 10:32:47 · 529 阅读 · 0 评论 -
引用传参与指针传参
#include using namespace std;void swap_quote(int &a, int &b){ int tmp = a; a = b; b = tmp;}void swap_pointer(int *a, int *b){ int tmp = *a; *a = *b; *b = tmp;}int main(){ int a原创 2016-04-02 16:26:09 · 344 阅读 · 0 评论 -
二维数组和指针
二重指针,指向指针的指针(可定义二维数组) int **a; a = new int* [3]; for (int i = 0; i < 3; ++i) a[i] = new int [2]; a[0][0] = 1; a[0][1] = 2; a[1][0] = 3; a[1][1] = 4; a[2][0] = 5; a[2][1] = 6;原创 2016-04-01 13:24:33 · 317 阅读 · 0 评论 -
C++ string 与 C char *
#include #include using namespace std;//C++ string 操作 http://www.cplusplus.com/reference/string/string///C++ string 类型转换 http://www.cplusplus.com/reference/string///C char * 操作 http:原创 2016-04-08 13:01:10 · 443 阅读 · 0 评论 -
指针常量与常量指针
#include using namespace std;int main(){ int x = 1; int y = 2; //指针常量(指针的值不能修改,指向的内容可以修改) int * const p = &x; //const修饰p //p = &y; //误 *p = 3; //常量指针(指向常量的指针,指针的值可以修改,指向的内容不能修改)原创 2016-04-16 16:41:50 · 212 阅读 · 0 评论 -
字节对齐
转自http://www.jb51.net/article/41436.htm3条原则:(在没有#pragma pack宏的情况下)1. 数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小或者成员的子成员大小(只要该成员有子成员,比如说是数组,结构体等)的整数倍开始(比转载 2016-04-30 13:14:47 · 228 阅读 · 0 评论 -
C和C++的读入方式对比
#include #include #include using namespace std;int main(){ //读一行 string s; getline(cin, s); char ch[80]; cin.getline(ch, 80); char ch2[80]; gets(ch2); //读一个字符 char a = cin.get(原创 2016-04-23 15:14:19 · 316 阅读 · 0 评论