设为首页 加入收藏

TOP

C++入门学习笔记(一)
2016-12-06 20:24:46 】 浏览:1907
Tags:入门 学习 笔记

这些是我刚学习C++的笔记,拿出来与大家分享,希望大家更容易入门!

1、 运算符<<(送出)用作输出运算符;cout是标准输出流。运算符>>(取入)用作输入运算;cin是标准的输入流。

2、 输出:一个输出表达式的结果本身还可以用于进一步的输出。

void h2(int i)

{

Cout<<”the value of I is”<

3、 输入:Void h3(int i)

{

Cin>>x;

Getline(cin,str);

}4、 迭代器是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。迭代器修改了常规指针接口,所谓迭代器是一种概念上的抽像:那些行为上像迭代器的东西都可以叫做迭代器。然而迭代器有很多不同的能力,他可以把抽象的容器和同用的算法有机的结合起来。迭代器提供一些基本操作符:*、++、==、!=、=。这些操作和c/c++操作array元素时的指针接口一致。不同之处在于迭代器是个所谓的复杂指针。具有遍历复杂数据结构的能力。其下层运行机制取决于其所遍历的数据结构。因此每一种容器型别都必须提供自己的迭代器。事实上每一种容器都将其迭代器以嵌套的方式定义域内部。因此各种迭代器的接口相同,型号却不同。这直接导出了泛型程序设计概念:所有操作行为都是用相同接口虽然他们的型别不同。功能迭代器使开发人员能够在类或结构中支持foreach迭代,而不必整个实现IEnumerable或者IEnumerator接口。只需提供一个迭代器,即可遍历类中的数据结构。当编译器检测到迭代器时,将自动生成IEnumerable接口或者IEnumerator接口的Current,MoveNext和Dispose方法。特点1.迭代器是可以返回相同类型值的有序序列的一段代码;2.迭代器可用作方法、运算符或get访问器的代码体;3.迭代器代码使用yieldreturn语句依次返回每个元素,yield break将终止迭代;4.可以在类中实现多个迭代器,每个迭代器都必须像任何类成员一样有惟一的名称,并且可以在foreach语句中被客户端,代码调用如下所示:foreach(int x in SimpleClass.Iterator2){};5.迭代器的返回类型必须为IEnumerable和IEnumerator中的任意一种;6.迭代器是产生值的有序序列的一个语句块,不同于有一个 或多个yield语句存在的常规语句块;7.迭代器不是一种成员,它只是实现函数成员的方式,理解这一点是很重要的,一个通过迭代器实现的成员,可以被其他可能或不可能通过迭代器实现的成员覆盖和重载;8.迭代器块在C#语法中不是独特的元素,它们在几个方面受到限制,并且主要作用在函数成员声明的语义上,它们在语法上只是语句块而已;9.yield关键字用于指定返回的值。到达yieldreturn语句时,会保存当前位置。下次调用迭代器时将从此位置重新开始执行。 迭代器对集合类特别有用,它提供一种简单的方法来迭代不常用的数据结构(如二进制树)。简介迭代器是一种检查容器内元素并遍历元素的数据类型。 5、 枚举(enum)枚举在C/C++/c#中,是一个被命名的整型常数的集合, 枚举在日常生活中很常见。例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,SATURDAY, 就是一个枚举。枚举的说明与结构和联合相似, 其形式为:enum 枚举名{

标识符[=整型常数],

标识符[=整型常数],

...

标识符[=整型常数]

} 枚举变量;如果枚举没有初始化, 即省掉”=整型常数”时, 则从第一个标识符开始, 顺次赋给标识符0, 1, 2, …。但当枚举中的某个成员赋值后, 其后的成员按依次加1的规则确定其值。例如下列枚举说明后, x1, x2, x3, x4的值分别为0, 1, 2, 3。enum Num{x1, x2, x3, x4}x;当定义改变成:enum Num

{

x1,

x2=0,

x3=50,

x4

}x;则x1=0, x2=0, x3=50, x4=51注意:1. 枚举中每个成员(标识符)结束符是”,”, 不是”;”, 最后一个成员可省略“,”。2. 初始化时可以赋负数, 以后的标识符仍依次加1。3. 枚举变量只能取枚举说明结构中的某个标识符常量。例如:enum Num

{

x1=5,

x2,

x3,

x4

};

enum Num x=x3;此时, 枚举变量x实际上是7。枚举类型变量的赋值和使用枚举类型在使用中有以下规定:1.枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。例如对枚举weekday的元素再作以下赋值: sun=5;mon=2;sun=mon; 都是错误的。2. 枚举元素本身由系统定义了一个表示序号的数值,从0 开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1, …,sat值为6。main(){

enum weekday

{ sun,mon,tue,wed,thu,fri,sat } a,b,c;

a=sun;

b=mon;

c=tue;

printf("%d,%d,%d",a,b,c);

}只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如: a=sun;b=mon; 是正确的。而: a=0;b=1; 是错误的。如一定要把数值赋予枚举变量,则必须用强制类型转换,如: a=(enum weekday)2;其意义是将顺序号为2的枚举元素赋予枚举变量a,相当于: a=tue; 还应该说明的是枚举元素不是字符常量也不是字符串常量, 使用时不要加单、双引号。main(){

enum body

{ a,b,c,d } month[31],j;

int i;

j=a;

for(i=1;i<=30;i++){

month[i]=j;

j++;

if (j>d) j=a;

}

for(i=1;i<=30;i++){

switch(month[i])

{

case a:printf(" %2d %c\t",i,'a'); break;

case b:printf(" %2d %c\t",i,'b'); break;

case c:printf(" %2d %c\t",i,'c'); break;

case d:printf(" %2d %c\t",i,'d'); break;

default:break;

}

}

printf("\n");

}10个数字,任意取出不相等的5个数字,

谁还记得这个算法的公式

java script有什么好的计算方法

m n*(n-1)*(n-2)*...*(n-m+1) n!

C = --------------------------------------------- = --------------------------

n m*(m-1)*(m-2)*...*3*2*1 m!*(n-m)!这个是公式,但是对枚举作用不大,还是要遍历循环才行.这就需要一个好的算法6、 typedeftypedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。 7、 大小C++对象的大小事用char的大小的倍数表示的。按照定义char的大小为1,。一个对象或类型的大小可以用sizeof运算符得到。类型 大

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 1/11/11
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇数独 约束求解 C++ and Python 下一篇C++面向对象高效编程:数据抽象

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目