- 博客(12)
- 收藏
- 关注
原创 String(C++)
一、初始化 string a;//被默认初始化为空字符串 string b = a;//拷贝初始化,值与a一样 string c = "hello";//c是"hello"字面值 除最后面的 空字符外的副本, string d(c);//等价于 string d = c string e("hello");//等价于 string e = "hello" string f(n,'
2015-11-17 21:04:35 252
原创 输入符>>(C++)
string a; std:: cin >> a;//如果输入“ hello world”,则 a会是hello,以第一个非空字符 作为开始字符,直到遇到下一个空白为止 std:: cout
2015-11-17 20:36:57 353
原创 using的使用(C++11)
1.定义 类型 别名 using D = double;//D 就是 类型double的别名 ,等价于 typedef double D; 2.说明 命名空间 using namespace:: std ;//使用命名空间 std using std::cin;// 程序中出现的 cin 属于 std命名空间 注意:头文件中 不要使用 using,因为头文件会被其
2015-11-17 20:05:34 315
原创 auto 与 decltype
auto 让编译器通过 初始值推算 变量的类型,所以 auto变量 必须有初始值。 auto 可以一条语句中声明多个变量,但是 该语句中的多个变量初始值应该是 同一种类型。 auto sz = 0, pi = 3.14;//错误 auto一般会忽略 顶层const,而 底层 const 会保留下来。引用也会被忽略。因为当引用作为初始值时,真正参与 初始化的其实是引用
2015-11-16 20:49:10 243
原创 const修饰符(C++11标准)
const对象创建之后,就不能改变其值,所以在定义时必须对其初始化。 如果利用一个对象对const对象进行初始化,则它们可以是不是const类型没有关系。 int i = 1; const ci = i;//正确 int j = ci;//正确 当尝试改变ci的值时,ci的常量特性才发挥作用 默认情况下,const对象仅在定义文件内有效,如果需要在其他文件中也需要使用,
2015-11-16 16:43:13 285
原创 C ++中的NULL与nullptr的区别
NULL是定义的一个宏,值为0,属于预处理器的部分,预处理时会直接替换为0 int *p = NULL; //正确 int *p = 0; //正确 int i= 0; int * p1 = i;//错误,不能将int变量转换为int* int n = NULL;//正确 int n2 = nullptr;//错误,不能将指针类型赋值给int类型 int *p2 = n
2015-11-16 15:45:38 555
原创 动态线性表
假设原数组T a[ ],长度为n,需要将其加长或者缩短到长度为m的数组: 用C++描述 首先动态分配一个大小为m的数组;然后将原数组a的元素拷贝过去; template void changeListLength(T * &a, int oldSize, int newSize) { if( newSize throw illegalParameterValue("the new
2015-11-15 21:08:14 335
转载 排序算法(c++编写)
#include using namespace std; //选择排序,计算出每个元素的名次 template void rank1(T a[], int n, int r[]) { for(int i = 0; i r[i] = 0;//初始化 for(int i = 1;i for(int j = 0;
2015-11-12 16:29:42 325
转载 编写与类型无关的代码——primer读书笔记
通过将函数参数设定为const的引用,保证函数可以用于不能拷贝的类型,大多数类型,包括内置类型和一些标准库类型(除unique_shared和IO类型之外)都是允许拷贝的。 在比较操作时我们只是用。如果我们编写代码时只使用. 模板程序应该尽量减少对实参类型的要求。
2015-08-18 16:20:05 245
转载 非类型模板参数
一个非类型参数表示一个值而非一个类型。我们通过一个特定的类型而不是关键字class或typename来指定非类型参数。 当一个模板被实例化时,非类型参数被一个用户提供的或编译器推断出的值所代替。这些值必须是常量表达式,从而允许编译器在编译时实例化模板。 一个非类型参数可以是一个整型,或者是一个指向对象或函数的指针或(左值)引用。而绑定到非类型参数的实参则必须是一个常量表达式。绑定到指针或引用非
2015-08-18 16:02:43 522
转载 虚函数——C++PrimeCr第五版读书笔记
派生类可以继承基类的成员,然而遇到与类型相关的操作时,派生类必须对其重新定义,换句话说,派生类需要对这些操作提供自己的新定义以覆盖(override)从基类继承而来的旧定义。这些成员函数在基类中通常定义为虚函数(virtual)。当我们使用指针或引用调用基函数 时,该调用将被动态绑定。根据引用或指针的绑定对象的类型不同,该调用可能执行基类的版本,也可能执行某个派生类的版本。 简略说明 clas
2015-08-14 11:03:28 602
转载 C++中左值与右值引用———C++Primer读书笔记
所谓右值引用就是必须绑定到右值的引用,通过&&获得。右值引用智能绑定到一个将要销毁的对象上,因此可以自由的移动其资源。 左值引用,也就是“常规引用”,不能绑定到要转换的表达式、字面值常量或返回右值的表达式。而右值引用恰好相反。可以绑定到这类表达式,但不能绑定到一个左值上。 返回左值的表达式包括返回左值引用的函数及赋值、下标、解引用和前置递增/递减运算符,返回右值的包括返回非引用类型的函
2015-08-14 10:57:05 356
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人